我需要一个跨平台的解决方案来正确地进行摘要访问身份验证,最好使用“qop = auth-int”来进行POST请求。似乎只有Opera才会响应qop = auth-int和I.E. 6有任何摘要的麻烦。
所以我想我自己:我知道,我只是做一个AJAX请求并使用setRequestHeader()自己实现身份验证。我已经实现了做RFC-2617所需的服务器端的东西,所以我唯一的主要障碍就是弄清楚如何通过javascript获得足够的控制来解析401 WWW-Authenticate头并形成适当的响应。
问题在于:看起来浏览器处理401而不是允许它传递给XMLHttpRequest.onreadystatechange。如果已经为网站Chrome&存储用户/通行证Firefox将默默处理Authentication头上的粘贴。如果没有,他们将弹出正常的登录框。
在你警告我Digest Auth& amp;的不足之前告诉我我需要使用TLS - 我意识到安全风险。服务器是一个资源非常有限的嵌入式平台,SSL实际上并不是一个选择。服务器不会缩进显示在公共互联网上。因此,身份验证更多的是劝阻好奇的未经授权的人员进行更改(认为管理员有良好的意图但知识不足),而不是恶意攻击者知道如何做MitM。