Сокращение количества спама в простой и понятной форме:проверка наличия Javascript?

StackOverflow https://stackoverflow.com/questions/52359

  •  09-06-2019
  •  | 
  •  

Вопрос

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

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

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

Это было полезно?

Решение

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

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

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

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

Другие советы

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

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

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

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

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

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top