2010-09-01 5 views
23

К «приманку», я имею в виду более или менее эту практику:Насколько эффективна техника 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. 
?> 
более

информация here.

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

Я люблю это потому что это не приводит к раздражению пользователя CAPTCHA.

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

+3

Будьте осторожны с именами полей, когда делаете что-то вроде этого. Там есть несколько автоматических форм-наполнителей, и что-то, что предназначено для приманки спам-бота, также может приманить наполнитель формы.Вы пробуете форму, как указано на мне, и вы назовете меня спамером - я не буду понимать, что моя система заполняет скрытое поле «электронная почта». –

+0

Ты прав, я забыл атрибут AUTOCOMPLETE = OFF в поле меда; однако он не поддерживается всем браузером – Strae

+1

. Связано: http://stackoverflow.com/questions/1577918/blocking-comment-spam-without-using-captcha Перечисляет много методов бота/валидации, таких как CAPTCHA, honey pot, askimet , и т. д. Если у вас возникли проблемы со спам-ботами, определенно стоит прочитать. –

ответ

4

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

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

+2

Я использую honeypot для того, чтобы не сообщать пользователям о capthca .. – Strae

+4

Множество ботов по-прежнему проходят мимо reCaptcha на моем сайте: \ –

+0

Вы также можете изучить возможность внедрения http://www.akismet.com на своем сайте. Но это, как правило, для спама комментариев. И помните, что reCaptcha и Honey Pot не будут препятствовать человеческим спамерам. –

14

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

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

8

Используя нижеприведенную технику, я блокирую 100% спама.

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

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

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

+0

. Над рутиной, по-видимому, действительно увеличились бот-тесты. Я думаю, что боты сходят с ума, потому что им отказывают в доступе к серверу полностью. Я думаю, что они пытаются исправить, как заполнить форму, но их доступ запрещен со второго раза, когда они получают доступ, поэтому не могут сказать, что пошло не так. Я надеюсь, что они будут обескуражены и перестанут пытаться, когда пройдет время. –

+1

«honeypot with display: none. If failed ...» Что это значит, если дисплей: none не работает. Вы имеете в виду, если бот все еще подает? Тогда как вы знаете, что это бот, и программно добавить его в .htaccess? Я либо смущен, либо это ручная работа. – Goose