2012-01-18 107 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)这样的工具将有所帮助。

相关问题