我有一个对POST / GET / PUT动词有效的API,但如果黑客拦截请求并将方法更改为'OPTIONS'而不是'GET',他将在http响应中得到以下错误 -
允许:GET,POST,PUT { “消息”:“请求的资源不支持http方法'OPTIONS'。” }
这允许黑客识别API支持的动词。我必须限制此标题作为回应。
我尝试删除'WebDav'模块,但它仍显示相同的消息。我不希望黑客看到此消息和允许标头。
答案 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中启用身份验证,以便更好地考虑安全性。