2012-01-18 172 views
2

我想阻止任何人嘗試訪問我的網站thro的代碼。代碼在某種意義上說,任何類似bot的程序,都會導致流量激增。如何防止代碼/程序訪問Web應用程序?

例如,

URL url = new URL("http://www.example.com"); 
URLConnection yc = url.openConnection(); 

我想防止上述Java代碼從打開一個連接。

這是可能的,如果我能這樣做,會導致任何副作用(用戶無法通過特定瀏覽器訪問網站)?

+5

請記住,*所有*訪問您的網站是通過代碼,在Firefox,Chrome等是意義上的程序。您可以嘗試檢測不看起來或不像這些瀏覽器的程序,但這不會是萬無一失的。通常,沒關係。 – 2012-01-18 17:14:38

+0

這是不可能的。 – Cosmin 2012-01-18 17:16:12

+0

我很可能會將人類與機器人區分開來。 – Ahamed 2012-01-18 17:16:13

回答

3

簡答題是你不能。但是,您可以像用戶代理一樣進行一些檢查(但是,這很容易被更改/欺騙)。

但是,假設您想獲得大多數,請檢查用戶代理是否可以接受,請檢查設備是否有移動設備訪問您的頁面。

我知道人們已經完成的另一種方法是跟蹤源的請求數量,並且有一個請求/時間閾值來測試連接是否「合法」。我自己並沒有這樣做,所以我不能說它的可靠性。

如果你想區分機器人,像( ReCaptcha)這樣的工具將有所幫助。

相關問題