Когда в базе данных сайта скапливается множество неактивных пользовательских аккаунтов, а под статьями — ссылок на неизвестные веб-страницы, наступает пора проверить защиту всех форм на веб-сайте. Спам на сайте является сигналом того, что его атаковали боты и нужно настроить их блокировку.
Чтобы действия на сайте могли осуществлять только добросовестные пользователи, на него устанавливают CAPTCHA. Она помогает проанализировать поведение посетителей веб-ресурса и проверить их на человечность. Им предлагают пройти валидацию, поставив галочку в чекбоксе при отправке заполненной формы на сервер. Человек может выполнить эту задачу, машина нет. Если говорить простыми словами, CAPTCHA — средство защиты любых форм, которые заполняют пользователи на веб-ресурсе, от спам-ботов.
Использование Google reCAPTCHA в формах Django является одним из лучших способов предотвратить атаку на ваше приложение Django.
Хотя вы можете использовать другие меры, такие как блокировка пользователя после 3 неудачных попыток или блокировка IP-адреса, но я думаю, что reCAPTCHA является одним из наиболее широко используемых методов, чтобы остановить атаку ботов на вашу страницу входа/входа в систему.
Для работы ReCAPTCHA в Django нам необходимо установить пакет django-recaptcha, выполним следующую команду:
pip install django-recaptcha
Далее добавим модуль в настроечный файл Django, в INSTALLED_APPS:
INSTALLED_APPS = [
....
....
'django_recaptcha',
]
Получение ключей для ReCAPTCHA
Теперь нам следует получить ключ, для этого нам необходимо зарегистрировать свой сайт по ссылке https://www.google.com/recaptcha/admin/create:
Введём название и добавим домен. На данный момент, вместо домена, мы используем IP-адрес 127.0.0.1, так как мы занимаемся локальной разработкой. В случае деплоя проекта, необходимо будет добавить свой домен в этот список.
Затем нажмём кнопку ОТПРАВИТЬ.
Эти ключи необходимо скопировать и затем добавить в наш файл настроек:
RECAPTCHA_PUBLIC_KEY = '6LddLC0pAAAAAG2u0P97oeEzmCjufurYgBxKdG1z'
RECAPTCHA_PRIVATE_KEY = '6LddLC0pAAAAAI7ElDhOTY3ho7WUyvxh-ViyBkO8'
В следующем шаге мы добавим в формы капчу.