The Wire · Showcase
DJANGO KILLS SIGNUP BOT ATTACK WITH RECAPTCHA, DAPHNE GAINS WEBSOCKET CONTROL
By RepoJournal · Filed · About Django
The Django project site plugged its only unprotected registration form after automated signups tanked email reputation, while Daphne now lets you configure WebSocket message sizes in development.
Djangoproject.com added ReCAPTCHA V3 to its self-serve registration form [1], the only public endpoint that wasn't protected. Bots were hammering it directly into activation emails to fake addresses, generating hard bounces that degraded the site's email sending reputation. The fix mirrors the same protection already in place on the contact and fundraising forms. Over on Daphne [2], you can now configure websocket-max-message-size and websocket-max-frame-size via CLI argument or Django setting when running the dev server, which closes the loop on applications that needed tighter control over incoming WebSocket traffic. Django core shipped documentation fixes for CSRF context processor clarity [6] and improved SVG icon contrast in the default debug page [7], addressing accessibility issues in High Contrast mode. Build infrastructure got minor bumps across the board: djangoproject.com updated actions/setup-python to 6.3.0 [3], Channels jumped to v7 [4], and pre-commit linting tools advanced across Daphne [5].
One email a day. Unsubscribe in one click.
What actually shipped in Django, written up every day — commits, pull requests, releases, and security advisories.
One email a day. Unsubscribe in one click. Read a past issue →
Action items
- → If you maintain a Django site with public registration, review your bot protection and apply similar ReCAPTCHA strategy django/djangoproject.com [plan]
- → If you're building WebSocket apps with Daphne, test the new message-size configuration options in your next development cycle django/daphne [monitor]
References
- [1] Added a reCAPTCHA to the account registration form. ↗ django/djangoproject.com
- [2] Add ability to configure websocket message size when running as django dev server ↗ django/daphne
- [3] Bump actions/setup-python from 6 to 6.3.0 ↗ django/djangoproject.com
- [4] Bump actions/setup-python from 6 to 7 ↗ django/channels
- [5] [pre-commit.ci] pre-commit autoupdate ↗ django/daphne
- [6] Fixed #37032 -- Documented that the CSRF context processor is always enabled in its reference documentation. ↗ django/django
- [7] Fixed #36229 -- Improved SVG icon color contrast in django/views/templates/default_urlconf.html. ↗ django/django