如何从 Http Response 中删除 Allow header?

How to remove Allow header from Http Response?

我有 API,它对 POST/GET/PUT 动词有效,但如果黑客拦截请求并将方法更改为 'OPTIONS' 而不是 'GET',他将得到以下错误在 http 响应中 -

允许:GET,POST,PUT { "Message": "The requested resource does not support http method 'OPTIONS'." }

这允许黑客识别 API 支持的动词。我必须限制这个 header 作为回应。

我尝试删除 'WebDav' 模块,但它仍然显示相同的消息。我不希望黑客看到此消息并允许 header。

根据您的要求,我假设您可以在 Web.config 文件中指定支持的动词,如下所示:

<system.webServer>
  <security>
    <requestFiltering>
      <verbs allowUnlisted="false">
        <add verb="GET" allowed="true" />
        <add verb="POST" allowed="true" />
        <add verb="PUT" allowed="true" />                
      </verbs>
    </requestFiltering>
  </security>
</system.webServer>

如果客户端尝试使用其他动词访问您的 Api,它将收到 404 状态代码。此外,为了更好的安全考虑,您最好在您的 Web API 中启用身份验证。