2008-09-09 5 views
4

Я пытаюсь уменьшить форму спама на нашем сайте. (На самом деле это довольно недавно).Простая и простая форма спама: проверка на Javascript?

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

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

ответ

8

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

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

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

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

+0

reCAPTCHA требует также Javascript. – Kornel 2008-11-17 21:20:54

0

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

1

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

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

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

1

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

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

1

проверка 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> 

так яваскрипта пользователи не видят ничего, не являющиеся пользователи JS просто введите слово

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

0

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

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