asp.net - 使用 web.config 禁止用户代理

标签 asp.net iis

是否可以直接从 web.config 禁止某些用户代理?某些机器人似乎不遵循 robots.txt,为了避免无意义的服务器负载(和日志文件垃圾邮件),我想阻止某些类别的请求(特别是基于用户代理或很可能是 IP 地址)继续进行.

如果您知道是否可以类似地阻止此类请求完全记录到 IIS 的日志文件中,则可以获得奖励积分。 (即 if-request-match,转发到/dev/null,如果你明白我的意思)。

win2003 的解决方案会更可取,但这是一个反复出现的问题 - 如果 IIS7 有一个干净的解决方案,但没有 IIS6,我会很高兴知道它。

编辑:对不起'关于之前不完整的问题,我不小心输入了选项卡+。

最佳答案

这可以使用 IIS7 中的 URLRewrite 模块轻松完成。但我真的不知道这是否会阻止这些请求被记录。

 <rewrite> 
  <rules> 
    <rule name="Ban user-agent RogueBot" stopProcessing="true"> 
      <match url=".*" /> 
      <conditions> 
        <add input="{HTTP_USER_AGENT}" pattern="RogueBotName" /> 
        <add input="{MyPrivatePages:{REQUEST_URI}}" pattern="(.+)" /> 
      </conditions> 
      <action type="AbortRequest" /> 
    </rule> 
  </rules> 
  <rewriteMaps> 
    <rewriteMap name="MyPrivatePages"> 
      <add key="/PrivatePage1.aspx" value="block" /> 
      <add key="/PrivatePage2.aspx" value="block" />
      <add key="/PrivatePage3.aspx" value="block" /> 
    </rewriteMap> 
  </rewriteMaps> 
</rewrite>

关于asp.net - 使用 web.config 禁止用户代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1172933/

相关文章:

asp.net - 模态弹出后的页面加载

asp.net - 如何在服务器端缓存 ASP.NET 自定义 HttpHandler 响应

asp.net - 这些在 ASP.NET Web Forms 4.5 中引用 bundle CSS 的方法有什么区别?

iis - Web 服务作为另一个受证书保护的服务的客户端 - 第一次调用返回 403,第二次调用成功

.net - Mono for ASP.NET 对于实际应用程序来说是否足够成熟?

.net - 更新面板复制了我的控件

c# - Debug模式仅适用于在 C# 中发送电子邮件

asp.net - 什么是 App_Browser 文件夹,为什么会导致 Bug?

perl - 如何限制 IIS 中 Perl 脚本的执行时间?

无法从公共(public) IP/cloudapp.net 域访问 Azure VM IIS