Существуют ли поля заголовка HTTP, которые я мог бы использовать для обнаружения спам-ботов? - PullRequest
1 голос
/ 28 ноября 2010

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

Существуют ли методы анализа заголовков HTTP или это просто несбыточная мечта?

Array
(
    [Host] => example.com
    [Connection] => keep-alive
    [Referer] => http://example.com/headers/
    [Cache-Control] => max-age=0
    [Accept] => application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
    [User-Agent] => Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.7 (KHTML, like Gecko) Chrome/7.0.517.44 Safari/534.7
    [Accept-Encoding] => gzip,deflate,sdch
    [Accept-Language] => en-US,en;q=0.8
    [Accept-Charset] => ISO-8859-1,utf-8;q=0.7,*;q=0.3
)

Ответы [ 2 ]

2 голосов
/ 28 ноября 2010

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

Вместо

  • использовать капчу
  • , если это слишком раздражает, простой, но эффективный прием состоит в том, чтобы включить текстовый ввод, который скрытпо правилу CSS;пользователи не увидят его, но спам-боты обычно не будут разбирать и применять все правила CSS, поэтому они не поймут, что поле не видно, и что-то добавят в него.Проверьте при отправке формы, что поле пустое и не обращайте на него внимания, если оно есть.
  • используйте одноразовый номер в ваших формах;убедитесь, что одноразовый номер, использованный при визуализации формы, совпадает с моментом отправки.Это не поймает все, но будет гарантировать, что сообщение было по крайней мере сделано чем-то, что получило форму в первую очередь.В идеале меняйте одноразовый номер каждый раз, когда форма отображается.
1 голос
/ 11 января 2011

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

Некоторые боты забывают о *Заголовки 1003 * и Accept-Encoding.Вы также можете найти невозможные комбинации Accept и User-Agent (например, IE6 не будет запрашивать XHTML, Firefox не афиширует типы MS Office).

При блокировке будьте осторожны с прокси, потому чтоможет изменить заголовки.Я рекомендую отступать, если вы видите Via или X-Forwarded-For заголовки.

В идеале, вместо написания правил вручную, вы можете использовать байесовский классификатор.Это может быть так же просто, как объединить соответствующие заголовки и использовать их как одно «слово» в классификаторе.

...