【问题标题】:IIS htaccess rule converter only importing 1 ruleIIS htaccess 规则转换器仅导入 1 条规则
【发布时间】:2019-08-31 17:01:09
【问题描述】:

我有一个示例 .htaccess 文件(找到 here),其中包含要阻止的坏机器人。这是该文件中的一个小示例代码块:

#bad bots start
#programmed by tab-studio.com public  version 2017.12
#1 new rule every 500 entries
RewriteCond %{HTTP_USER_AGENT} \
12soso|\
192\.comagent|\
1noonbot|\
zuibot|\
zyborg|\
zyte\
 [NC]
RewriteRule .* - [F]
#bad bots end

基本上在 URL 匹配时抛出 403。我检查了this post 以了解如何通过 IIS 将这些.htaccess 规则转换为web.config 重写规则。 但是,当我导入规则时,我得到了一个意外的结果,其中似乎没有转换任何规则,请参见下图。我做错了什么?

【问题讨论】:

  • 该转换器有其局限性。在大多数情况下,您需要手动转换。

标签: .htaccess url-rewriting web-config iis-10


【解决方案1】:

\ 和回车肯定会让人窒息。如果您尝试以下操作,您会看到它应该正确导入:

#bad bots start
#programmed by tab-studio.com public  version 2017.12
#1 new rule every 500 entries
RewriteCond %{HTTP_USER_AGENT} 12soso|192\.comagent|1noonbot|zuibot|zyborg|zyte
 [NC]
RewriteRule .* - [F]
#bad bots end

话虽如此,您可能会考虑改用请求过滤和扫描标头:https://docs.microsoft.com/en-us/iis/configuration/system.webserver/security/requestfiltering/filteringrules/filteringrule/scanheaders/

【讨论】:

  • 谢谢。我假设您建议使用请求过滤器,因为它会比 web.config 重写规则更早地阻止请求。现在我的示例 .htaccess 规则适用于 HTTP_USER_AGENT,但我在这里看到一个使用 User-agent (docs.microsoft.com/en-us/iis/configuration/system.webserver/…) 的 IIS 示例,有区别吗?
  • 它不仅运行得更早,而且 RequestFiltering 是一个专门的安全模块,并且在阻止某些内容时内置了对显式状态代码 (SubStatusCode) 日志记录的支持。 HTTP_USER_AGENT 和 User-Agent 将是同一件事。 HTTP_ 是系统将数据作为 HTTP 标头引用的方式,但最终只是实际 HTTP 标头中值的副本。在幕后,他们都在检查同一件事。
猜你喜欢
  • 2013-04-10
  • 2015-07-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-08
  • 2011-04-25
  • 1970-01-01
  • 2012-08-22
相关资源
最近更新 更多