无效主机/ Referer请求标头的最合适的HTTP状态代码是什么?

问题描述 投票:0回答:1

我正在编写一个Node.js / NPM模块,用于通过服务器端Host和Referer [sic]头验证来保护快速服务器免受DNS Rebind attacks的攻击。服务器管理员指定列入白名单的主机和/或引用者,并且任何不包括那些列入白名单的值的请求将收到错误状态代码并且没有结果。

什么是最合适的HTTP status code,当他们在请求中提供无效的Host或Referer标头时,或者在需要时无法提供一个The request was valid, but the server is refusing action. The user might not have the necessary permissions for a resource, or may need an account of some sort.时,将返回客户端。我在想401未经授权,但我想得到第二意见。也可以对400 Bad Request进行论证,或者我认为,412 Precondition Failed。

服务器是否有义务通过响应标头或正文通知客户端他们的请求被拒绝的原因(例如,需要列入白名单的主机),或者是否可以使用错误代码进行响应并让客户端对安全/混淆目的感到疑惑?

http security web server http-status-codes
1个回答
1
投票

你可能是对的,最好的匹配似乎是未经授权的。但最匹配的HTTP状态代码不是401,实际上是403。

403状态代码说https://stackoverflow.com/a/6937030/945214,这句话的后半部分完全适合你的用例。

见:http://projects.webappsec.org/w/page/13246936/Information%20Leakage

对于所有未经授权/未经身份验证的请求,建议不要回复解释,因为这会从您的服务器泄漏信息:qazxsw poi。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.