Простое и простое сокращение спама в форме: проверка на Javascript? - PullRequest
5 голосов
/ 09 сентября 2008

Я пытаюсь уменьшить количество спама на нашем сайте. (Это на самом деле довольно недавно).

Кажется, я помню, что где-то читал, что спаммеры не выполняют Javascript на сайте.

Это правда? И если так, то не могли бы вы просто проверить, отключен ли javascript, а затем предположить, что вероятно , что это спам?

Ответы [ 6 ]

8 голосов
/ 09 сентября 2008

Все еще есть большое количество людей, которые работают с отключенным Javascript.

В качестве альтернативы, я добился приличного успеха, прекратив спам с помощью CSS. В основном, включите поле ввода и метку, которая скрыта с помощью CSS (display: none;) и после отправки проверьте, было ли что-либо введено в поле.

Я обычно помечаю поле как спам-фильтр с инструкцией, чтобы не помещал что-либо в поле, но все новые браузеры будут правильно скрывать блок.

reCAPTCHA также удивительно прост в реализации.

2 голосов
/ 05 октября 2008

проверка 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 просто набирают слово

если спаммер нацелен на вас конкретно, им не понадобится много времени, чтобы закодировать его, но для рассылки спамерами это должно быть хорошо

1 голос
/ 09 сентября 2008

В том же духе, добавление фиктивного поля и затем использование CSS, чтобы скрыть это хороший способ обмануть ботов. Если поле отправлено, вы знаете, что не человек, вероятно, заполнил форму.

Особенно эффективно, если вы помечаете / называете поле чем-то вроде URL или веб-сайта .

1 голос
/ 09 сентября 2008

Вы можете проверить - есть JavaScript, который заполняет скрытое поле формы определенным значением после загрузки страницы. Затем, когда страница отправляется обратно на сервер, проверьте в этом скрытом поле формы ожидаемое значение. Если его там нет, это означает, что JavaScript не был выполнен.

Относительно того, следует ли считать, что это спам, это совсем другая история, и на самом деле она не имеет определенного ответа. Вы можете просто иметь тег <noscript> и указывать пользователю, что его отправка не будет выполняться, если он не включит JavaScript.

Однако, если у вас запущен JavaScript, спаммеры просто используют другой обходной путь для этого. :)

0 голосов
/ 25 августа 2009

Вам повезло с этим? Я думаю, что в некоторых текстовых браузерах реализована базовая поддержка JavaScript, так что, возможно, спам-боты также имеют такую ​​возможность?

В противном случае я рассматриваю возможность использования капчи для пользователей без JavaScript и некоторой автоматической проверки JavaScript для других пользователей.

0 голосов
/ 09 сентября 2008

Не могу вспомнить, где я видел этот метод, но спам-боты любят заполнять формы. Задумывались ли вы надеть поле формы, которое скрыто с помощью JavaScript (и говорит, не заполняйте это поле, если у пользователя нет JavaScript) Таким образом, если что-то заполняется в этом поле, вы можете игнорировать его как спам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...