2010-11-28 68 views
1

这意味着刮板和垃圾邮件将不会像普通的网页浏览器一样构建。考虑到这一点,似乎应该有方法通过查看他们提出请求的方式来发现公然的垃圾邮件。有没有可以用来发现垃圾邮件机器人的HTTP头域?

是否有任何方法来分析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 
) 
+0

只有少数机器人拥有可靠的签名。大多数形式的垃圾邮件搜寻器执行重播攻击或ActiveX僵尸。 (但很大程度上取决于目标网站。)“引用者”链接变得越来越少了。但要注意“不良行为”。 – mario 2010-11-28 04:22:31

回答

2

如果我正在编写垃圾邮件机器人,我会伪造普通浏览器的标题,所以我怀疑这是一种可行的方法。其他一些建议可能会帮助

相反

  • 使用验证码
  • 如果那是太烦人了,一个简单而有效的一招是包括由CSS规则隐藏的文本输入;用户不会看到它,但垃圾邮件机器人通常不会解析和应用所有CSS规则,因此他们不会意识到该字段不可见并将放入某些内容。检查表单提交该字段是空的,如果它是无视的话。
  • 在表单上使用随机数;请检查您提交表单时使用的随机数是否与提交时相同。这不会抓住所有的东西,但会确保该帖子至少是由首先获得该表格的东西制作的。理想情况下,每次呈现表单时都要更改随机数。
+0

nonce = *数字使用一次*。随机数*需要*每次更改或不是随机数。否则,+1。 :) – deceze 2010-11-28 05:34:11

+0

你当然是正确的:)但是,如果不正确地使用它,并重复使用它,直到表单成功提交(例如,如果它们重新加载),仍然比完全没有做到更好,所以我理想地说;在这种情况下,每个表单提交使用一次,而不是每个表单视图一次。 – 2010-11-28 05:37:57

1

你找不到所有的僵尸工具,但你可以捕捉到一些,或至少有一些UA是机器人的可能性,并与另一种方法结合使用。

有些机器人忘记了Accept-CharsetAccept-Encoding标题。您也可能会发现AcceptUser-Agent的不可能组合(例如,IE6不会要求使用XHTML,Firefox不会公布MS Office类型)。

阻塞时,请注意代理,因为它们可以修改标头。如果您看到ViaX-Forwarded-For标题,我建议退后一步。

理想情况下,您可以使用贝叶斯分类器代替手动编写规则。它可以像将相关标题连接在一起并将它们用作分类器中的单个“单词”一样简单。

相关问题