簡體   English   中英

我怎樣才能只讓搜索引擎來獲取我的數據,而不能讓別人呢?

[英]How can I let only search engines to grab my data but no one else?

我開發了一個PHP應用程序,其主要目的是從數據庫中獲取數據。 我想防止通過使用機器請求從數據庫中獲取所有記錄(我的意思是那些請求是由非人類提出的,即諸如CURL之類的機制,您通常會通過CAPTCHA阻止此類請求。)。

我該如何讓僅搜索引擎來獲取我的數據,而沒有其他人不會造成明顯的可用性損害?

相關: 防止非人為產生的請求

要打開您的問題,我單擊了鏈接,然后我的瀏覽器向stackOverflow服務器發出了請求,並詢問了該頁面。 cURL的功能與之相同……只是它無法處理JavaScript。 但同樣,我沒有代表瀏覽器解析JavaScript。 再次是一個程序。

我真正需要強調的是,幾乎沒有任何方法可以防止機器偽造用戶活動。

但是,如果您有興趣,這里有一些技巧。 我個人更喜歡不直接涉及人類的方法。

  • 向頁面添加驗證碼挑戰。
  • 如果您的目標受眾主要是擁有現代瀏覽器的現代人,請使用一些Ajax頁面加載。 這將保留大多數低端刮板,但不是全部。 Google可以處理一些ajax請求。 參見hashbangs。
  • 向頁面添加驗證碼挑戰。
  • 如果您的目標受眾主要是擁有現代瀏覽器的現代人,請使用一些Ajax頁面加載。 這將保留大多數低端刮板,但不是全部。 Google可以處理一些ajax請求。 參見hashbangs。
  • 記錄用戶的IP地址,並在短時間內尋找具有數千點擊率的人。
  • 向站點添加一些防洪功能。 您可以禁止表單提交(例如)在一分鍾內處理多次。
  • 將令牌添加到表單並進行驗證。 這至少會使爬網分為兩個步驟。
  • 並使您的站點從數據庫中獲取一些數據。 例如,如果您的應用程序是日歷,則可以禁止所有請求顯示超過一年的日期。

您不能通過其用戶代理阻止漫游器。 發出請求時,cURL和其他程序可以使用用戶指定的不同用戶代理。

您可以調整googlebot在Google Web Master Central中的行為。 嘗試使其與您的洪水控制機制相匹配。 請記住,Google建議您不要依賴其用戶代理。

暫無
暫無

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

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