【问题标题】:Browser support of nextnonce directive in HTTP digest authentication浏览器支持 HTTP 摘要认证中的 nextnonce 指令
【发布时间】:2015-10-21 14:10:34
【问题描述】:

我已经完成了一个基于 C++ 的 HTTP 服务器(或者换种说法 - 又是一滴水)并且遇到了 HTTP 摘要身份验证的问题。

根据HTTP authentication RFC,在Authentication-Info 标头中使用nextnonce 指令是实现单次使用随机数机制的有效方式。我已经根据 RFC 完成了这项工作,但 Chrome 和 Firefox 似乎都忽略了该指令,并使用初始随机数发出所有进一步的请求,从而触发了不需要的 401 响应。 Firefox 示例说明:

第一个请求 - 我的服务器返回 401 并发出初始随机数 a1f778b2afc8590e4a64f414f663128b

Firefox 成功验证并获得带有Authentication-Info: nextnonce="0b72e74afbcab33a5aba05d4db03b801" 标头的回复

Firefox 发出一个新请求以从返回的 html 中获取图像 - 仍然使用初始随机数 c1587dd7be6251fa715540e0d6121aa5,因此会发送一个带有新随机数的回复和一个表明提供的随机数已过期的标志。

与第一个图像请求相同的场景。

现在使用新的 nonce 验证成功。

第二个请求的身份验证也成功。

如图所示 - 即使我在第一个请求成功授权时回复 Authentication-Info: nextnonce="0b72e74afbcab33a5aba05d4db03b801",接下来的两个请求仍然使用原始随机数,而不是提供的 nextnonce 值。有没有人有过类似的经历?我肯定做错了什么——尽管 RFC 说客户端 应该 用提供的 nextnonce 值回复,因此这不是强制性的 我非常怀疑最流行的浏览器不使用这个技术。

【问题讨论】:

    标签: c++ http-authentication digest-authentication


    【解决方案1】:

    【讨论】:

    • 谢谢,这是非常有价值的东西。但是我在 Chrome 上遇到了同样的问题,但我会扫描他们的错误数据库,看看他们是否也有未决的错误。
    猜你喜欢
    • 1970-01-01
    • 2014-08-07
    • 2020-09-17
    • 1970-01-01
    • 2012-09-23
    • 1970-01-01
    • 2011-05-03
    • 2013-03-27
    • 1970-01-01
    相关资源
    最近更新 更多