如何从 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 中启用身份验证。
我有 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 中启用身份验证。