Простое и базовое сокращение спама в форме: проверка Javascript?

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

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

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


person Clay Nichols    schedule 09.09.2008    source источник


Ответы (6)


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

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

Обычно я помечаю это поле как спам-фильтр с указанием не вводить что-либо в поле, но все новые браузеры должным образом скроют этот блок.

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

person Jason Navarrete    schedule 09.09.2008
comment
reCAPTCHA также требует Javascript. - person Kornel; 18.11.2008
comment
@ Джейсон, спасибо за идею, я действительно подумаю о том, чтобы внедрить это в систему в нашей компании. Звучит гениально просто и легко, обожаю такие идеи :) - person andr; 21.01.2013

проверьте 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 просто вводят слово

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

person James    schedule 05.10.2008

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

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

person Dave Ward    schedule 09.09.2008

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

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

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

person Jason Bunting    schedule 09.09.2008

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

person Ryan Lanciaux    schedule 09.09.2008

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

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

person Jacob Rask    schedule 25.08.2009