2010-09-13 67 views
1

我想保護我的網站免受網站複製。我看過Ajax Toolkit NoBot,但不幸的是它不符合我的要求。如何在ASP.NET中實現NoBot/AntiBot

以下是我的要求。

  1. 只有0.5%的頁面會有後貼,其餘頁面看起來像靜態頁面。所以檢測應該在最初的請求時發生,而不是在回發之後。
  2. 同時我想允許搜索引擎爬蟲。什麼是檢測搜索機器人的最佳方法?用戶代理不正確的方式?

也有可能通過在內容中填充抽取詞(我的網站url等)來混淆網頁內容,這些詞將不會顯示我的網站。但是,通過使用JQuery(客戶端)/ HTMLDocument(服務器端)編碼,不應輕易刪除這些填充的單詞。

任何抽象的想法也歡迎。

如果你的答案是否定的,請不要回答。如果有任何可能的方法,建議我。

回答

4

你不能。當允許來源查看您的數據,並允許Google Bots時,不可能只阻止抓取工具,任何人都可以像Google一樣阻止抓取工具。


但是,您可以阻止人們試圖竊取你的數據,例如:

創建一個字節數組出請求的IP地址,然後抓住這個數組(它看起來像1000101011100什麼),並通過文本中的所有空間進行工作。如果IP地址陣列包含0,請將該空間替換兩個空格。

當您找到一個網站複製了您網站上的文本時,請查看源代碼和空白模式,您可以提取抓取工具IP並阻止您的網絡服務器訪問此IP。

+1

+1有趣的方法。 – NotMe 2010-09-13 12:47:29

1

對於混淆內容,您不希望假定JavaScript將刪除客戶端上的混淆顯示,因爲未啓用JavaScript的用戶將從您的頁面中廢non。 (更不用說屏幕閱讀器和其他可訪問性問題了)。如果你必須像這樣混淆文本,至少用CSS代替JavaScript是因爲它更符合規範,但我仍然不推薦它。

出於好奇,這項工作的目的是什麼?通過在互聯網上公開提供某些內容,其本質是可複製的。你試圖阻止什麼,爲什麼?

+2

不正確的是,想要竊取你的數據的殭屍程序只會將其用戶代理設置爲GoogleBot之類的東西。 – 2010-09-13 12:37:47

+0

@Jan:啊,好點。現在編輯答案。 – David 2010-09-13 12:43:41