【问题标题】:Ignoring OPTIONS requests忽略 OPTIONS 请求
【发布时间】:2018-07-12 14:36:31
【问题描述】:

我遇到的问题与此处列出的基本相同:Blocking "System.Web.HttpException: Path 'OPTIONS' is forbidden" Errors

但是,我担心使用 StaticFileHandler 仍会返回可能对在我们的应用程序中寻找漏洞的人有用的标头。有没有办法通过忽略请求或只返回 405 错误代码来处理这个问题?

【问题讨论】:

    标签: asp.net iis web-config


    【解决方案1】:

    --

    基于 cmets 更新

    如果您只是关心从 OPTIONS 请求中删除日志行,以下应该可以:

    <rewrite>
      <rules>
        <rule name="Ignore OPTIONS requests">
          <match url=".*"/>
          <conditions>
            <add input="{REQUEST_METHOD}" matchType="Pattern" pattern="OPTIONS" ignoreCase="true" />
          </conditions>
          <action type="AbortRequest" />
        </rule>
      </rules>
    </rewrite>
    

    请注意 - 虽然上述内容确实需要您想要,但我认为这不是一个好主意。在我看来,您对管理/使用日志的方式有疑问,而不是记录的内容?

    (看看 Microsoft 的 Log Parser 和/或 Log Parser Studio - 它是免费的、可编写脚本的,并为您提供“类似 sql”的语法,因此您可以轻松地通过 VERB 或日志文件中的任何其他数据过滤掉,它会吐出表格/图表:)。

    --

    下面是原帖

    看看 iis 中的请求过滤功能。它允许您创建允许动词的白名单,或者明确禁止特定动词。过滤在处理请求的早期执行,将返回 404.6 错误

    下面是白名单方式(只允许GET请求,根据需要添加额外动词)

    <configuration>
     <system.webServer>
      <security>
       <requestFiltering>
        <verbsallowUnlisted="false">
         <add verb="GET" allowed="true" />
        </verbs>
       </requestFiltering>
      </security>
     </system.webServer>
    </configuration>
    

    这是一个更通用的版本,它允许除OPTIONS 之外的所有动词

    <configuration>
     <system.webServer>
      <security>
       <requestFiltering>
        <verbsallowUnlisted="true">
         <add verb="OPTIONS" allowed="false" />
        </verbs>
       </requestFiltering>
      </security>
     </system.webServer>
    </configuration>
    

    请参阅 Microsoft 文档了解按动词过滤的请求:

    https://docs.microsoft.com/en-us/iis/manage/configuring-security/use-request-filtering#filter-by-verbs

    【讨论】:

    • 在发出 OPTIONS 请求时不会产生错误吗?我们已经有一条禁止 OPTIONS 请求的规则。问题是他们会产生大量错误,这些错误最终会出现在我们产品的错误日志中,并且在寻找真正的错误时让支持人员进行筛选变得乏味。我们做了一个不太理想的修复,在我们的错误处理中过滤掉这些错误,但我们宁愿让 IIS 忽略这些请求而不产生错误。
    猜你喜欢
    • 2011-01-16
    • 2013-12-29
    • 2014-02-14
    • 2013-03-07
    • 1970-01-01
    • 2019-07-12
    • 2020-01-17
    • 2015-02-23
    • 1970-01-01
    相关资源
    最近更新 更多