2010-11-28 26 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標題,我建議退後一步。

理想情況下,您可以使用貝葉斯分類器代替手動編寫規則。它可以像將相關標題連接在一起並將它們用作分類器中的單個「單詞」一樣簡單。

相關問題