摘要认证请求中的 HTTP No Authorization 字段
HTTP No Authorization field in the digest authentication requests
我的 SOC 上有一个带有摘要式身份验证的 http 服务器。在尝试验证服务器时,服务器会正确发送带有 401 代码和 WWW-Authenticate header 以及随机数和摘要模式的响应。但是,在某些主机上,浏览器不会在它们应该包含的后续请求中包含随机数等授权字段。
这是 Edge 登录尝试:
响应 WWW-Authenticate - https://i.imgur.com/tcw1XYL.png。
在上面的屏幕中,服务器返回正确的 WWW-Authenticate 字段。
未经授权的请求 - https://i.imgur.com/4z61rU5.png。
我希望在下一个请求中有授权字段,但是有 none!
Chrome 尝试类似,只是它立即显示没有登录提示的 401 页面,因为 header 中没有授权字段。
Chrome 和 Edge 都是 Windows 10.
上的最新 64 位版本
哪些可能的问题可能导致此行为?
显然问题是 multi-line WWW-Authenticate header。您可以在屏幕截图中看到 header 字段值之间的“/r/n”分隔符(0x0d 0x0a 字节)。
最初的 RFC 2616 允许这样的 multi-line,然后被更新的 RFC 7230 弃用。有关详细信息和链接,请参阅 https://whosebug.com/a/31324422/8876135。
通过将 header 字段设为单行来修复该字段后,问题就消失了。我仍然不知道为什么完全相同的浏览器在某些主机上遇到 header 这个问题,但在我的 work/home PC 上却完全没问题。
我的 SOC 上有一个带有摘要式身份验证的 http 服务器。在尝试验证服务器时,服务器会正确发送带有 401 代码和 WWW-Authenticate header 以及随机数和摘要模式的响应。但是,在某些主机上,浏览器不会在它们应该包含的后续请求中包含随机数等授权字段。
这是 Edge 登录尝试:
响应 WWW-Authenticate - https://i.imgur.com/tcw1XYL.png。 在上面的屏幕中,服务器返回正确的 WWW-Authenticate 字段。
未经授权的请求 - https://i.imgur.com/4z61rU5.png。 我希望在下一个请求中有授权字段,但是有 none!
Chrome 尝试类似,只是它立即显示没有登录提示的 401 页面,因为 header 中没有授权字段。
Chrome 和 Edge 都是 Windows 10.
上的最新 64 位版本哪些可能的问题可能导致此行为?
显然问题是 multi-line WWW-Authenticate header。您可以在屏幕截图中看到 header 字段值之间的“/r/n”分隔符(0x0d 0x0a 字节)。
最初的 RFC 2616 允许这样的 multi-line,然后被更新的 RFC 7230 弃用。有关详细信息和链接,请参阅 https://whosebug.com/a/31324422/8876135。
通过将 header 字段设为单行来修复该字段后,问题就消失了。我仍然不知道为什么完全相同的浏览器在某些主机上遇到 header 这个问题,但在我的 work/home PC 上却完全没问题。