Подтвердить что ты не робот

Насколько эффективна техника 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.

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

4b9b3361

Ответ 1

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

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

Ответ 2

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

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

Ответ 3

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

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

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

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

Ответ 4

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

Одно поле ввода в каждой форме скрыто (отображение: ни один не указан в атрибуте класса CSS) со значением по умолчанию "". Для программ чтения с экрана и т.д. Скрытая метка ввода дает понять, что поле следует оставить пустым. Не имея длины по умолчанию, мы используем код на стороне сервера (в нашем случае это ColdFusion, но это может быть любой язык), чтобы остановить отправку формы, если в этом поле что-то есть. Когда мы прерываем отправку таким образом, мы даем такую же обратную связь с пользователем, как если бы она была успешной ("Спасибо за ваш комментарий" или что-то подобное), поэтому нет никаких внешних признаков отказа.

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

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

Итак, краткое изложение моего опыта таково: honeypot работает довольно хорошо, как было задумано изначально. (Я не помню, где я нашел его впервые, но этот пост очень похож на первый, который я увидел об этом более десяти лет назад.) Он кажется еще более эффективным с добавлением проверки на стороне клиента, включенной в HTML5. И мы думаем, что будет еще лучше с серверными ограничениями, которые мы сейчас установили для этих слишком поспешных представлений.

Наконец, я упомяну, что такие решения, как reCaptcha, не обсуждаются. Мы потратили значительное время на разработку веб-приложения с использованием API карт Google, и оно работало до тех пор, пока Google не изменил их API без предупреждения и без рекомендаций по переходу. Мы не выйдем замуж за одного и того же оскорбительного супруга дважды.