Помимо использования CSS, для защиты полей ввода можно применять следующие методы:
- Рамки на время заполнения формы. 4 Сервер устанавливает определённые временные ограничения на заполнение полей. 14 Если пользователь вводит информацию быстрее, чем прописано в условии скрипта, то он считается ботом. 4
- Скрытое поле. 14 К форме добавляется невидимое поле. 14 Если оно заполнено, то пользователь считается ботом. 1
- Блокирование определённых user-agent. 12 Некоторые боты используют специфические заголовки user-agent. 1 Можно блокировать запросы, не содержащие user-agent или содержащие плохой заголовок. 1
- «Ловушка» для ботов. 1 Создаётся специальный раздел сайта, который не виден для пользователя. 1 Если бот зайдёт в этот раздел и сделает что-нибудь, то его IP блокируется. 1
- Хеширование формы. 1 При отправке формы на сервер вычисляется хеш полей формы и добавляется в одно из специальных скрытых полей. 1 Сервер проверяет значение хеша. 1
- Использование прозрачных кнопок. 1 У формы есть несколько кнопок, на одной из которых написан текст, остальные — прозрачные. 1 Для отправки данных пользователь должен нажать на картинку с текстом. 1
- Использование сторонних сервисов. 1 Можно туннелировать трафик через специальный сервис, предназначенный для анализа контента на спам. 1
Эффективнее всего защищать формы сразу несколькими методами, чтобы закрыть как можно больше уязвимостей. 4