【问题标题】:How to remove Allow header from Http Response?如何从 Http 响应中删除 Allow 标头?
【发布时间】:2018-04-11 11:37:08
【问题描述】:
我有对 POST/GET/PUT 动词有效的 API,但如果黑客拦截了请求并将方法更改为“OPTIONS”而不是“GET”,他将在 http 响应中得到以下错误 -
允许:GET、POST、PUT
{
"Message": "请求的资源不支持 http 方法 'OPTIONS'。"
}
这允许黑客识别 API 支持的动词。我必须限制此标头作为响应。
我尝试删除“WebDav”模块,但它仍然显示相同的消息。我不希望黑客看到此消息和允许标头。
【问题讨论】:
标签:
azure
http
iis
asp.net-web-api2
webdav
【解决方案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 中启用身份验证。