1

我发现使用 JavaScript 清除了浏览器(FireFox 和 Chrome)之间的身份验证缓存。

通过引用这篇文章Link,使用 XMLHttpRequest 清除非 IE 浏览器缓存的部分在我的情况下不起作用。

我正在寻找替代方法,有什么建议吗?请帮忙

提前谢谢你。

4

2 回答 2

1

我一直在寻找类似的解决方案,并遇到了一个用于执行此操作的 Trac(问题管理系统)的补丁。

我已经查看了代码(我很累,所以我没有解释一切);基本上,您需要使用保证无效凭据对您的登录页面进行 AJAX 调用。浏览器将收到 401 并知道下次您去那里时它需要询问您正确的凭据。您使用 AJAX 而不是重定向,以便您可以指定不正确的凭据并且浏览器不会弹出对话框。

在补丁(http://trac-hacks.org/wiki/TrueHttpLogoutPatch)页面上,他们使用非常基本的 AJAX;像 jQuery 或 Prototype 等更好的东西可能会更好,尽管这样可以完成工作。

于 2012-06-07T11:06:06.770 回答
1

浏览器处理提供的凭据的精确规则 - 如果它们在从 Javascript 提供时被保存,并且如果正确或不正确的尝试将覆盖身份验证缓存,则在任何地方都没有标准化。

此外,开发人员倾向于考虑任何允许无人看管的存储操作,这些操作通常需要用户手动交互,例如“你想保存密码吗?” 提示,因为不安全,即使它在过去由于某种原因有效,也会及时堵塞漏洞。

因此,我建议不要依赖它,也不要尝试从脚本中清除/无效此缓存。

于 2012-06-07T11:03:00.927 回答