如何让我的所有网站只能通过浏览器访问,而不能通过自动脚本访问

如何让我的所有网站只能通过浏览器访问,而不能通过自动脚本访问

我的网站被一些自动运行libwww-perl BOT/0.1 (BOT for JCE)Gecko/20100101

有没有什么办法可以让我的所有网站只对正版浏览器可用,而对这些自动脚本不可用。

答案1

不,您无法确保您的网站仅对正版浏览器可用。这是因为您确定客户端平台和 Web 浏览器的唯一数据来源是请求标头,而这些标头完全可以被黑客伪造。

例如,黑客可以使用 Fiddler 之类的工具向您的网站发送自定义 HTTP 请求,其中包含伪造的User-Agent请求标头,这些请求标头看起来就像 Internet Explorer、Chrome、Firefox、Googlebot 或其他 HTTP 客户端。因此,根据 HTTP 请求数据辨别黑客和合法用户非常困难,甚至不可能。

答案2

我可以给你列出无数你可以采取的防御措施(限制用户代理、使用 XML 文件中的 JavaScript 使你的内容显示、验证码 - 这真是激怒观众的好方法!),但他们只能在研究如何绕过它们的同时避免不可避免的事情发生。

最好的办法是,直接戳穿问题的核心,而不是一味地设置防御。如果可以,查看应用程序,尝试找出他们是如何进入的,然后尝试修补漏洞。最明显的地方是查看表单输入 - 这些输入是否未经解析就传递给 SQL 字符串?它们是否生成 SQL 字符串而不是使用准备好的语句(从一开始就消除 SQL 注入尝试)?如果这是您可以修复的问题,那就去做吧。如果这是其他人的产品,请创建一个补丁并将其发送给他们。

在安全方面,最糟糕的做法就是假设它不会发生在你身上。蠕虫、病毒和自动机器人通常不够聪明,无法意识到你的小网站不构成威胁。

要聪明、要安全、要警惕。

相关内容