簡體   English   中英

如何從php中的用戶代理字符串中檢測瀏覽器欺騙和機器人

[英]How to detect browser spoofing and robots from a user agent string in php

到目前為止,我能夠通過將這些字符串與已知的用戶代理進行匹配來檢測用戶代理字符串列表中的機器人,但我想知道使用php有什么其他方法可以做到這一點,因為我正在使用此方法檢索比預期更少的機器人。

我還想了解如何檢測瀏覽器或機器人是否使用用戶代理字符串欺騙另一個瀏覽器。

任何建議表示贊賞。

編輯:這必須使用包含以下行的日志文件來完成:

129.173.129.168 - - [11 / Oct / 2011:00:00:05 -0300]“GET /cams/uni_ave2.jpg?time=1318302291289 HTTP / 1.1”200 20240“http://faculty.dentistry.dal.ca /loanertracker/webcam.html“”Mozilla / 5.0(Macintosh; U; PPC Mac OS X 10.4; en-US; rv:1.9.2.23)Gecko / 20110920 Firefox / 3.6.23“

這意味着除了訪問時間之外,我無法檢查用戶行為。

除了過濾用戶代理字符串中的關鍵字之外,我還幸運地在所有頁面上放置了隱藏的蜜罐鏈接:

<a style="display:none" href="autocatch.php">A</a>

然后在“autocatch.php”中將會話(或IP地址)記錄為bot。 這個鏈接對用戶來說是不可見的,但它的隱藏特性有望無法通過機器人實現。 將style屬性輸出並將其放入CSS文件可能會有所幫助。

因為,如前所述,您可以欺騙用戶代理和IP,這些不能用於可靠的機器人檢測。

我在一家安全公司工作,我們的機器人檢測算法看起來像這樣:

  1. 第1步 - 收集數據:

    一個。 交叉檢查用戶代理與IP。 (兩者都必須是正確的)

    檢查標題參數(缺少什么,訂單是什么等等)

    C。 檢查行為(早期訪問和遵守robots.txt,一般行為,訪問的頁數,訪問率等)

  2. 第2步 - 分類:

    通過交叉驗證數據,機器人被分類為“好”,“壞”或“可疑”

  3. 第3步 - 積極挑戰:

    可疑機器人遇到以下挑戰:

    一個。 JS Challenge(可以激活JS嗎?)

    Cookie挑戰(可以接受coockies嗎?)

    C。 如果仍然沒有定論 - > CAPTCHA

這種過濾機制非常有效,但我並不認為它可以由一個人甚至是非專業的提供者復制(一方面,安全團隊需要不斷更新挑戰和機器人數據庫)。

我們以Botopedia.org的形式提供某種“自己動手”的工具,我們的目錄可以用於IP /用戶名交叉驗證,但是對於真正有效的解決方案,您將不得不依賴於專門的服務。

有幾個免費的機器人監控解決方案,包括我們自己的,大多數將使用我上面描述的相同策略(或類似)。

GL

除了比較用戶代理之外,您還可以記錄活動並查找機器人行為。 通常這將包括檢查/robots.txt而不是加載圖像。 另一個技巧是詢問客戶端是否有javascript,因為大多數機器人都不會將其標記為已啟用。

但是,要注意,你可能會意外地得到一些真正有人的人。

不,用戶代理可以被欺騙,因此不會被信任。

除了檢查Javascript或圖像/ css加載,您還可以測量頁面加載速度,因為機器人通常會抓取您的網站比任何人類訪問者跳得快得多。 但這僅適用於小型網站,在共享的外部IP地址(大型公司或大學校園)背后有大量訪問者的熱門網站可能會以類似機器人的速度訪問您的網站。

我想你也可以測量它們加載的順序,因為機器人會按照先到先得的爬行順序進行爬行,因為人類用戶通常不適合這種模式,但跟蹤更復雜一些

您的問題特別涉及使用用戶代理字符串進行檢測。 正如許多人所提到的,這可能是欺騙性的。

要了解欺騙的可能性,並了解檢測的難度,最好建議您使用cURL學習PHP的藝術。

從本質上講,使用cURL幾乎所有可以在瀏覽器(客戶端)請求中發送的內容都可以用IP的明顯例外來欺騙,但即使在這里,確定的欺騙者也會隱藏在代理服務器后面,以消除您檢測到他們的IP。

不言而喻,每次發出請求時使用相同的參數將使得能夠檢測到欺騙者,但是使用不同的參數旋轉將使得在真實的交通日志中檢測任何欺騙者(如果不是不可能的話)非常困難。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM