Предотвращение спама и ботов с помощью созданного JavaScript флажка
Я читал, что можно сдерживать ботов, используя JS для создания флажка в форме, которая должна быть установлена (т. е. http://uxmovement.com/forms/captchas-vs-spambots-why-the-checkbox-captcha-wins / ). эффективна ли эта стратегия? Должен ли пользователь физически проверить флажок, или можно использовать клиентскую сторону JS, чтобы проверить его также?
2 ответов:
Статья кажется мне подозрительной. Флажок captchaкажется достойной защитой от спам-ботов, которые слепо заполняют формы, ничего не зная о веб-сайте, на котором они находятся, однако если кто-то пишет Бота, который имеет какое-либо представление о Вашей странице, преимущества заканчиваются.
В конце концов, все, что имеет значение-это HTTP post. Если сообщение может быть проверено сервером, то не имеет значения, как оно было создано или какой сценарий мог быть запущен на сервере. клиент. Если сервер ищет значение сообщения
NotABot, которое имеет значение, равное1, спам-бот может просто включить это значение в свой собственный пост, так как сервер не знает, Был ли флажок создан через клиентский скрипт.. Если значение должно быть равно случайному значению, указанному в исходном HTML, spambot может также очистить это значение. Если значение должно соответствовать значению, указанному на изображении, то вы фактически создали капчу.В конце концов, это затраты / выгоды анализ, который зависит от вашей толерантности к риску спама в сравнении с вашим желанием удобства использования. При запуске небольшого веб-сайта, возможно, каждый пост может быть модерирован человеком, прежде чем он будет разрешен. Возможно, вы не получите достаточно спама, чтобы гарантировать снижение удобства использования. Если вы управляете огромным сайтом, используемым миллионами пользователей, возможно, необходимы более агрессивные меры для защиты от ботов. Это действительно твой выбор.
Ваш лучший выбор для ненавязчивого подхода-это запутывание. То есть, если предположить, что на всякий случай злостная спам-компания нанимает кого-то, чтобы выяснить, как написать бота для вашего сайта (что в 99% случаев не произойдет, если вы не обслужите миллионы пользователей), вам нужно сделать так, чтобы было как можно труднее и как можно больше времени, чтобы понять, что происходит под капотом вашего сайта.
У меня были боты в гостевых комментариях моего сайта, поэтому я решил пойти за борт. (Яваскрипт требуется на моем сайте. Очень небольшой процент людей, у которых он отключен, обычно являются ботами или веб-разработчиками)
- я не использую теги форм,и всегда есть случайное число CSS-скрытых фиктивных кнопок отправки, смешанных с реальной кнопкой отправки.
- поскольку submit-это Javascript/ajax, это уже отфильтровывает кучу неспециализированных ботов.
- я создаю несколько текстовых входных данных, которые скрыты с помощью CSS (не input type= "hidden" ) и имеют соответствующие имена как и "электронная почта" и другие ключевые слова, которые обычно ищут боты.
- если они заполнены и отправлены на сервер, я могу предположить, что это был бот.
- боту нужно было бы понять, чтобы заполнить только определенные поля.
- мой интерфейс с сервером требует скрытого кода captcha (не видимого пользователю), который шифруется клиентом.
- сервер передает клиенту случайную строку капчи.
- клиент использует функцию Javascript, которая скремблирует капча основана на дате, длине комментария и растеризации строки части DOM и передает скремблированную капчу обратно на сервер для проверки.
- сервер реализует ту же функцию.
Хакер, конечно, может украсть или иным образом ссылаться на эту функцию Javascript, поэтому у меня есть 10 или около того различных функций скремблирования, которые заменяются и ссылаются на рандомизированный URL-адрес в зависимости от сеанса пользователя.- клиенты с пустыми строками агента пользователя являются не разрешается добавлять комментарии или иным образом обновлять сайт.
- веб-сайт явно не отклоняет комментарии, которые предположительно принадлежат ботам, но вместо этого дает сообщение о том, что комментарий/etc появится через несколько часов. (Это им не врет!)
- Еще одна моя любимая вещь, если кто-то смотрит на мой исходный код Javascript, это использовать jsfuck.com метод, чтобы запутать его части. Это никого не останавливает, если они знают, что это такое, но мне нравится представлять себе посмотрите на их лица, когда они увидят запутанный код.
- текстовые области / входные данные проверяются, чтобы увидеть, сработали ли в них события keydown.
- в целом это не мешает никому нанимать человека для посещения вашего сайта, чтобы спамить на нем. Поэтому комментарии, которые полностью копируются и вставляются в текстовые области, помечаются как подозрительные и помечаются для просмотра до их появления.
- все последующие комментарии в течение следующего часа от пользователя с этим IP-адресом также помечаются для просмотра и выполнения. не сразу появляются.
- Комментарии с более чем 1 ссылкой помечаются для просмотра. Хотя большинство ботов уже знают об этом ограничении на многих сайтах и не жадничают со ссылками.
Comments