Насколько эффективна техника honeypot против спама?

Под «honeypot» я подразумеваю более или менее эту практику:

#Register form <style> .hideme{ display:none; visibility: hidden; } </style> <form action="register.php"> Your email: <input type="text" name="u-email" /> Choose a password: <input type="text" name="passwd" /> <div class="hideme"> Please, leave this field blank: <input type="text" name="email" /> #the comment is for text-browser users </div> <input type="submit" value="Register" autocomplete=off /> </form> //register.php <?php if($_POST['email'] != ''){ die("You spammer!"); } //otherwise, do the form validation and go on. ?> 

подробнее здесь .

Очевидно, что реальные поля называются случайными хэшами, а поля honeypot могут иметь разные имена (электронная почта, пользователь, веб-сайт, домашняя страница и т. Д.), Которые обычно заполняют спамбот.

Мне нравится эта техника, потому что она не вызывает раздражения пользователя CAPTCHA.

У кого-нибудь из вас есть опыт в этой технике? Это эффективно?

Solutions Collecting From Web of "Насколько эффективна техника honeypot против спама?"

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

Я предпочитаю использовать reCaptcha . Но вышесказанное остановит некоторых ботов.

Старый вопрос, но я думал, что буду звонить, поскольку я поддерживаю модуль для Drupal ( Honeypot ), который использует метод предотвращения спама Honeypot наряду с защитой от времени (пользователи не могут отправлять форму менее чем за X секунд, а X увеличивается экспоненциально с каждой последовательной неудачной подачей). Используя эти два метода, я слышал о многих, многих сайтах ( примерах ), которые устранили почти все автоматические спам.

У меня был лучший успех с Honeypot + timestamp, чем у меня с любым решением на основе CAPTCHA, потому что я не только блокирую большинство спамеров, но и не наказываю своих пользователей .

С помощью нижеуказанного метода я блокирую 100% спама.

  1. honeypot с дисплеем: нет. если не удалось, запустите дополнительный скрипт для сбора IP-адреса и напишите его в файле .htaccess при отказе от строки.
  2. подсчитайте количество URL-адресов в поле комментариев. если не удалось, предупредите только потому, что это может быть человеком.
  3. измерить время публикации. если менее 5 секунд, отобразите сообщение об ошибке и повторите попытку, потому что человек может писать довольно быстро с помощью автозаполнения плагина.
  4. обрезать файл htaccess с помощью crontab, так что строки запрета не будут превышать 30 строк (отрегулируйте соответственно).

Запретить доступ с IP-адресом очень эффективно, потому что боты продолжают пытаться проникнуть в одни и те же IP-адреса (если они меняют IP-адрес, тогда я помещаю этот новый IP-адрес в htaccess, поэтому никаких проблем). Я обрезаю файл .htaccess ежедневно с помощью crontab автоматически, чтобы файл не был слишком большим. Я настраиваю количество IP для блокировки, так что один и тот же бот с тем же IP-адресом будет заблокирован примерно на неделю или около того. Я заметил, что тот же IP-адрес используется ботом в течение 3 дней, атакуя несколько раз.

Первый трюк №1 блокирует около 99% и # 2 блокирует около 1%, и бот не будет проходить через те 2, поэтому № 3 может и не понадобиться.