Я пытаюсь уменьшить количество спама в формах на нашем сайте. (На самом деле это довольно недавно).
Я помню, как где-то читал, что спамеры не запускают Javascript на сайте.
Это правда? И если да, то не могли бы вы просто проверить, отключен ли javascript, а затем решить, что это скорее всего, что это спам?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Не могу вспомнить, где я видел этот метод, но спам-боты любят заполнять формы. Рассматривали ли вы возможность размещения поля формы, которое скрыто с помощью javascript (и говорит, что не заполняйте это поле, если у пользователя нет JavaScript). Таким образом, если что-то заполнит это поле, вы можете игнорировать это как спам.
Вы можете проверить - иметь JavaScript, который заполняет скрытое поле формы определенным значением после, которое загружает страница. Затем, когда страница отправляется обратно на сервер, проверьте это скрытое поле формы на ожидаемое значение. Если его там нет, это означает, что JavaScript не был выполнен.
Что касается того, следует ли считать, что это спам - это совсем другая история, и на самом деле она не имеет определенного ответа. У вас может быть просто тег <noscript>, и он укажет пользователю, что его отправка не будет выполняться, если он не включит JavaScript.
Однако после того, как у вас будет запущен JavaScript, спамеры просто воспользуются другим обходным путем. :)
По-прежнему большое количество людей работают с отключенным Javascript.
В качестве альтернативы я добился приличных успехов в предотвращении спама в формах с помощью CSS. По сути, добавьте поле ввода и метку, которая скрыта с помощью CSS (display: none;), и после отправки проверьте, было ли что-то введено в поле.
Я обычно помечаю поле как спам-фильтр с инструкцией, чтобы нет помещал что-нибудь в поле, но все новые браузеры будут правильно скрывать блок.
reCAPTCHA также на удивление легко реализовать.
@Jason, спасибо за идею, действительно подумает о том, чтобы реализовать это в системе в нашей компании. Звучит гениально просто и легко, я люблю такие идеи :)
Точно так же добавление фиктивного поля, а затем использование CSS для его скрытия - хороший способ обмануть ботов. Если поле отправлено, вы знаете, что форму, вероятно, заполнил не человек.
Особенно эффективно, если вы пометите поле чем-нибудь вроде URL или интернет сайт.
проверьте http://kahi.cz/wordpress/ravens-antispam-plugin/ для хорошего ответа
если вставит
<noscript><p><label for = "websiteurl99f">Please type "e73053": </label><input type = "text" name = "websiteurl99f" id = "websiteurl99f" /></p></noscript>
<script type = "text/javascript">/* <![CDATA[ */ document.write('<div><input type = "hidden" name = "websiteurl99f" value = "e' + '73053" /></div>'); /* ]]> */</script>
поэтому пользователи javascript ничего не видят, пользователи не js просто вводят слово
если спамер нацелен именно на вас, им не понадобится много времени, чтобы его обойти, но для спамеров это должно быть хорошо
Тебе с этим повезло? Я думаю, что в некоторых текстовых браузерах реализована базовая поддержка JavaScript, так что, может быть, у спам-ботов тоже есть?
В противном случае я рассматриваю возможность использования капчи для пользователей без JavaScript и некоторой автоматической проверки JavaScript для других пользователей.
reCAPTCHA также требует Javascript.