Security 检测到请求获取我的Web服务器的假用户代理(aka scraper)?

Security 检测到请求获取我的Web服务器的假用户代理(aka scraper)?,security,nginx,iptables,Security,Nginx,Iptables,我有一个Nginx服务器来服务两个网站。我的问题是,是否有一种方法可以检测和阻止所有Get请求,这些请求都是在头上修改其用户代理的!这样我就可以确定没有人可以刮我的帖子了。我热衷于在这种方法中使用网络过滤器,但我不确定它是否有这么强大 简单的回答是:不 您可以查看用户代理标题,根据刮刀的不同,这些标题可能会显示出来并使其变得明显,但是,没有任何东西可以阻止我(或任何其他人)创建与普通浏览器相同的用户代理。客户端,无论是浏览器还是程序员编写的脚本 你可以尝试一个白名单,阻止所有不在上面的东西,但是

我有一个Nginx服务器来服务两个网站。我的问题是,是否有一种方法可以检测和阻止所有Get请求,这些请求都是在头上修改其用户代理的!这样我就可以确定没有人可以刮我的帖子了。我热衷于在这种方法中使用网络过滤器,但我不确定它是否有这么强大

简单的回答是:不

您可以查看用户代理标题,根据刮刀的不同,这些标题可能会显示出来并使其变得明显,但是,没有任何东西可以阻止我(或任何其他人)创建与普通浏览器相同的用户代理。客户端,无论是浏览器还是程序员编写的脚本

你可以尝试一个白名单,阻止所有不在上面的东西,但是你很快就会阻止任何非主流浏览器,更不用说你也可以很容易地开始阻止主流浏览器的新版本。它需要不断的更新和维护,而且仍然很容易规避

黑名单根本不起作用,因为您无法预测开发人员可以“告诉”scraper使用哪种类型的用户代理

现在,从理论上讲,您可以分析用户行为并据此做出决策。但是,这将需要相当多的工作,并且很容易对合法流量造成滋扰,而它很可能不会对适当的刮板工作。

用户代理可以是用户代理选择发送的任何字符串。包括“已批准”列表中的任何特定用户代理可能发送的任何真实字符串(例如,任何流行浏览器用户代理字符串都很容易找到和复制)