ale*_*exp 6 iis-7.5 request-filtering
我正在尝试阻止来自某个机器人的请求。我添加了一个请求过滤规则,但我知道它仍在访问网站,因为它显示在 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>
Run Code Online (Sandbox Code Playgroud)
这是我试图阻止的用户代理的一个例子。
Mozilla/5.0+(Windows+NT+6.1;+WOW64;+rv:13.0;+GomezAgent+3.0)+Gecko/20100101+Firefox/13.0.1
Run Code Online (Sandbox Code Playgroud)
在某些方面它似乎有效。如果我使用 Chrome 来欺骗我的用户代理,我会得到 404,正如预期的那样。但是机器人流量仍然出现在我的分析中。我错过了什么?
我假设你拿了字符串:
Mozilla/5.0+(Windows+NT+6.1;+WOW64;+rv:13.0;+GomezAgent+3.0)+Gecko/20100101+Firefox/13.0.1
Run Code Online (Sandbox Code Playgroud)
从 IIS 日志。在日志中,空格字符表示为加号 (+) 字符。
真正的用户代理字符串是:
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:13.0; GomezAgent 3.0) Gecko/20100101 Firefox/13.0.1
Run Code Online (Sandbox Code Playgroud)
所以从你的 denyStrings 部分删除+应该可以解决它。
| 归档时间: |
|
| 查看次数: |
8300 次 |
| 最近记录: |