我试图阻止来自某个机器人的请求。 我已经添加了一个请求过滤规则,但是我知道它仍然在网站上,因为它显示在Google Analytics中。 这是我添加的过滤规则:
<security> <requestFiltering> <filteringRules> <filteringRule name="Block GomezAgent" scanUrl="false" scanQueryString="false"> <scanHeaders> <add requestHeader="User-Agent" /> </scanHeaders> <denyStrings> <add string="GomezAgent+3.0" /> </denyStrings> </filteringRule> </filteringRules> </requestFiltering> </security>
这是我试图阻止的用户代理的一个例子。
Mozilla/5.0+(Windows+NT+6.1;+WOW64;+rv:13.0;+GomezAgent+3.0)+Gecko/20100101+Firefox/13.0.1
在某些方面,它似乎工作。 如果我使用Chrome来欺骗我的用户代理,我会得到一个404,如预期的那样。 但是在我的分析中,botstream量仍然显示出来。 我错过了什么?
我假设你拿了string:
Mozilla/5.0+(Windows+NT+6.1;+WOW64;+rv:13.0;+GomezAgent+3.0)+Gecko/20100101+Firefox/13.0.1
从IIS日志中。 在日志空间字符表示为加号(+)字符。
真正的用户代理string是:
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:13.0; GomezAgent 3.0) Gecko/20100101 Firefox/13.0.1
所以从你的denyStrings部分删除+应该修复它。