2010-07-24 29 views
6

我想確保我的網站阻止像Selenium和QTP這樣的自動化工具。有沒有辦法做到這一點 ? Selenium網站上的哪些設置會失敗?如何確保我的網站可以阻止自動化腳本,機器人?

+9

你爲什麼要那樣做? 由於自動化工具是模仿用戶的,所以阻止它們的最好方法是拔掉Web服務器,澆注混凝土,然後逃跑。 但也許你有一個很好的理由。 – Scharron 2010-07-24 21:41:33

+2

更多關於serverfault的問題 - 如果您有一個好的防火牆 - 限制每個IP或用戶每秒/秒(或X次)的TCP連接數量。也可能是Apache插件。 – EdH 2010-07-24 21:46:16

+0

我同意@Scharron--你想達到什麼目的?如果以某種方式阻止Selenium/QTP,那麼阻止用戶使用其他工具嘗試,或者用'curl','wget'或Apache'HttpClient'編寫自己的代碼? – pdbartlett 2010-07-24 21:56:43

回答

3

考慮到對原始問題的評論問「你爲什麼要這樣做?」,你基本上需要遵循與任何網站用來驗證用戶實際上是人類一樣的策略。諸如要求用戶認證或從圖像等文字輸入文字的方法可能會奏效,但這可能會阻止谷歌搜索器和其他一切。

根據用戶代理字符串或類似的東西做任何事情都是沒用的。這些都是微不足道的。

速率限制連接或類似的可能有限的效果,但它似乎你會無意中阻止任何網絡爬蟲。

+1

我同意@Gian最好的方式來阻止某人自動與您的網站進行用戶互動,就是介紹一些類似captcha的內容。 http://en.wikipedia.org/wiki/CAPTCHA – 2010-07-26 08:25:26

+1

使用REcaptcha(http://en.wikipedia.org/wiki/ReCAPTCHA)將其提升到新的水平。然後,您可以阻止自動交互,同時幫助數字化舊書和報紙! – Zugwalt 2010-07-27 18:44:00

+0

我不認爲CAPTCHA是最好的解決方案,因爲它們非常便宜。有人運行自動腳本可以輕鬆繞過它。如果你不想讓任何人在你的網站上運行自動腳本,解決方案就是首先不要有網站。 – KJW 2011-11-10 14:35:07

3

雖然這個問題似乎很奇怪它是有趣的,所以我試圖探討的可能性

除了增加一個CAPTCHA這是最好的和唯一的終極解決方案,您可以通過添加下面的JavaScript來阻止硒你頁面(本例中重定向到谷歌網頁,但你可以做任何你想要的):

<script> 
var loc = window.parent.location.toString(); 
if (loc.indexOf("RemoteRunner.html")!=-1) { 
    // It is run in Selenium RC, so do something 
    document.location="http://www.google.com"; 
} 
</script> 

我不知道你怎麼能阻止其他自動化工具,我不知道這將不會阻止硒IDE

0

要100%確定沒有自動化機器人/腳本可以針對您的網站運行,請勿在線上有網站。這將確定地滿足您的要求。

由於衆包和OCR方法,CAPTCHA很容易打破,如果不便宜的話。

代理可以免費在野外找到,或批量可以極低的成本。再次,無用的限制連接速度或檢測機器人。

一種可能的方法可能是在您的應用程序邏輯中,通過諸如電話驗證,信用卡驗證等方式實施增加訪問網站的時間和成本的方法。您的網站永遠不會起步,因爲沒有人會相信您的網站處於初期階段。

解決方案:不要讓您的網站在線,並期望能夠有效地消除運行中的機器人和腳本。

相關問題