如何防止代码/程序访问 Web 应用程序?
Posted
技术标签:
【中文标题】如何防止代码/程序访问 Web 应用程序?【英文标题】:How to prevent code/program access to web application? 【发布时间】:2012-02-13 10:02:33 【问题描述】:我想阻止任何人试图通过代码访问我的网站。某种意义上的代码,任何类似于bot的程序,都会导致流量激增。
例如,
URL url = new URL("http://www.example.com");
URLConnection yc = url.openConnection();
我想阻止上面的java代码打开一个连接。
这可能吗?如果我可以这样做,是否会导致任何副作用(用户无法通过特定浏览器访问该网站)?
【问题讨论】:
请记住,所有对您网站的访问都是通过代码进行的,因为 Firefox、Chrome 等都是程序。您可以尝试检测看起来或行为与这些浏览器不同的程序,但这并非万无一失。通常,没关系。 我很可能将人类与机器人区分开来。 您可以检查用户代理标头,您可以提供并检查 cookie,但最终任何机器人都可以伪装成浏览器。 虽然有像captcha
这样的东西只能阻止导航到其他页面(表单提交)。
【参考方案1】:
简短的回答是你不能。但是,您可以进行一些检查,例如用户代理(但同样,这很容易更改/欺骗)。
但是假设您想获得多数,请检查用户代理是否可以接受,检查访问您页面的移动设备的设备。
我知道人们采用的另一种方法是跟踪源发出的请求数量,并设置请求/时间阈值来测试连接是否“合法”。我自己没有这样做,所以我不能说它的可靠性。
如果您想区分机器人,像 ( ReCaptcha) 这样的工具会有所帮助。
【讨论】:
以上是关于如何防止代码/程序访问 Web 应用程序?的主要内容,如果未能解决你的问题,请参考以下文章