【发布时间】:2018-03-25 21:48:27
【问题描述】:
我正在编写一个 Node.js/NPM 模块,用于通过服务器端 Host 和 Referer [sic] 标头验证来保护 express 服务器免受 DNS Rebind attacks 的侵害。服务器管理员指定列入白名单的主机和/或引用者,任何不包含这些白名单值的请求都将收到错误状态代码并且没有结果。
当客户在请求中提供无效的 Host 或 Referer 标头时,或者当需要时他们根本没有提供时,最合适的 HTTP status code 返回给客户? 我在想 401 Unauthorized,但我想获得第二意见。也可以为 400 Bad Request 进行论证,或者我想,412 Precondition Failed。
服务器是否有义务通过响应标头或正文通知客户端为什么他们的请求被拒绝(例如,需要列入白名单的主机)或者是否可以使用错误代码进行响应并让客户端想知道安全性/混淆目的?
【问题讨论】:
标签: http security web server http-status-codes