我希望TRACE从 IIS 8.5(Windows Server 2012 R2 数据中心)中的网站中删除该方法。我已经使用请求过滤实现了这一点,如下所示:
<system.webServer>
<security>
<requestFiltering>
<verbs allowUnlisted="true">
<add verb="TRACE" allowed="false" />
</verbs>
</requestFiltering>
</security>
</system.webServer>
Run Code Online (Sandbox Code Playgroud)
这会阻止TRACE请求,但如果我发送OPTIONS请求,它仍会TRACE在Allow和Public标头中列出。我已重置 IIS,但无法TRACE退出OPTIONS. 我不想否认OPTIONS。
这是有问题的,因为我们遵守的合规性扫描似乎OPTIONS用作其TRACE启用的指标。我知道这是不正确的,但这是我必须满足的标准。
有没有办法让 OPTIONS 正确报告可用方法?
有趣的问题。response headers从 IIS 中删除的所有方法似乎都不适用于Allow和Public标头,OPTIONS请求总是返回:
Allow: OPTIONS, TRACE, GET, HEAD, POST
Public: OPTIONS, TRACE, GET, HEAD, POST
Run Code Online (Sandbox Code Playgroud)
无论服务器实际允许什么。
IIS 中的所有请求都由模块处理,OPTIONS请求由 处理,ProtocolSupportModule这不是必需的,而且看起来很愚蠢。
如果我们删除该模块,服务器将不再响应 Options 请求,您仍然希望支持该请求,因此我们必须使用另一个模块来回答这些请求。
打开:
%SystemRoot%\System32\inetsrv\config\applicationHost.config
Run Code Online (Sandbox Code Playgroud)
并搜索OPTIONSVerbHandler该行的注释,同时搜索上面的 ( TRACEVerbHandler) 行。现在添加一个新节点:
<add name="MyOPTIONSVerbHandler" path="*" verb="OPTIONS" modules="StaticFileModule" requireAccess="None" />
Run Code Online (Sandbox Code Playgroud)
整个块应该是这样的:
<!-- <add name="TRACEVerbHandler" path="*" verb="TRACE" modules="ProtocolSupportModule" requireAccess="None" />
<add name="OPTIONSVerbHandler" path="*" verb="OPTIONS" modules="ProtocolSupportModule" requireAccess="None" /> -->
<add name="MyOPTIONSVerbHandler" path="*" verb="OPTIONS" modules="StaticFileModule" requireAccess="None" />
Run Code Online (Sandbox Code Playgroud)
现在 staticFileModule 将处理OPTIONS请求,但不会返回任何内容。
如果您现在OPTIONS向服务器发出请求,您将不会得到一个Allow或一个Public标头,您可以在 web.config 中轻松添加它们
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Allow" value="GET,POST,HEAD" />
<add name="Public" value="GET,POST,HEAD" />
</customHeaders>
</httpProtocol>
</system.webServer>
Run Code Online (Sandbox Code Playgroud)
现在您的OPTIONS要求上班必须的,但这些额外的头也与任何发送GET或POST我认为这仍然是有效的http请求。
如果您只想将这些标头用于OPTIONS请求,您可以编写一个简单的 http 模块来设置这些标头并使用它代替我上面使用的 StaticFileModule。
| 归档时间: |
|
| 查看次数: |
22560 次 |
| 最近记录: |