Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
对于无效的主机/引用器请求头,最合适的HTTP状态代码是什么?_Http_Security_Web_Server_Http Status Codes - Fatal编程技术网

对于无效的主机/引用器请求头,最合适的HTTP状态代码是什么?

对于无效的主机/引用器请求头,最合适的HTTP状态代码是什么?,http,security,web,server,http-status-codes,Http,Security,Web,Server,Http Status Codes,我正在编写一个Node.js/NPM模块,用于通过服务器端主机和Referer[sic]头验证来保护express服务器。服务器管理员指定白名单上的主机和/或引用者,任何不包括这些白名单上的值的请求都将收到错误状态代码,并且没有结果 当客户机在请求中提供无效的主机或Referer头时,或者当客户机在需要时根本无法提供主机或Referer头时,最适合返回给客户机的是什么。我在想,但我想听听别人的意见。对于400个错误的请求,或者我想412个前提条件失败,也可以提出一个论点 服务器是否有义务通过响应

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

当客户机在请求中提供无效的主机或Referer头时,或者当客户机在需要时根本无法提供主机或Referer头时,最适合返回给客户机的是什么。我在想,但我想听听别人的意见。对于400个错误的请求,或者我想412个前提条件失败,也可以提出一个论点


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

您可能是正确的,最佳匹配似乎是未经授权的。但是最匹配的HTTP状态码不是401,它实际上是403

403状态代码表示请求有效,但服务器拒绝操作。用户可能没有资源的必要权限,或者可能需要某种帐户。这句话的后半部分非常适合您的用例

见:


对于所有未经授权/未经身份验证的请求,不建议回复任何解释,因为这将是来自服务器的信息泄漏:

没错!这些链接和引用很有帮助。事实证明,我发送的401没有所需的WWW身份验证头,这违反了规范。403 Forbidden似乎更合适。在阅读了其中的一些链接后,似乎“Unauthenticated”是401“Unauthenticated”状态码的更合适的名称。。。