如何从Http Response中删除Allow标头?

时间:2018-04-11 11:37:08

标签: azure http iis asp.net-web-api2 webdav

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

允许:GET,POST,PUT { “消息”:“请求的资源不支持http方法'OPTIONS'。” }

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

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

1 个答案:

答案 0 :(得分:1)

根据您的要求,我假设您可以在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中启用身份验证,以便更好地考虑安全性。