如何从浏览器中删除“Authorization: Basic username:password”标头

7

我一直在尝试利用浏览器中可用的本机登录提示:

Native login prompt

我一直遵循 Steven Sanderson的博客文章

如博客所述,一旦用户输入其登录详细信息,浏览器就会在将来所有请求发送到登录URL时发送标题 Authorization: Basic username:password。这意味着如果用户退出登录但不关闭浏览器窗口,则下次访问登录页面时,当访问登录页面时将自动登录。实际上,浏览器会存储身份验证详细信息,直到浏览器关闭 - 使您的账户面临未经授权的访问。

有没有办法使浏览器忘记授权信息,以便用户无法重新登录而无需重新输入其详细信息?

1个回答

15

wikipedia所述:

现有浏览器会保留身份验证信息,直到关闭选项卡或浏览器,或用户清除历史记录。[1] HTTP 不提供服务器指示客户端丢弃这些缓存凭据的方法。这意味着没有有效的方法让服务器在不关闭浏览器的情况下“注销”用户。这是一个显著的缺陷,需要浏览器制造商支持“注销”用户界面元素(RFC 1945 中提到,但大多数浏览器没有实现)或可用于 JavaScript 的 API、进一步扩展 HTTP 或使用现有的替代技术,例如在 SSL/TLS 上检索页面并在 URL 中使用不可猜测的字符串。

看起来一般没有可行的方法。


谢谢你的解答,confused-demon。我喜欢这个不可预测的字符串的想法,但是由于过去的登录URL会保存在浏览器历史记录中,所以无法采用这种方法。你是否了解更多关于RFC 1945的内容?我正在尝试在移动Safari中实现这个功能,如果有一个注销系统可以提供,那将非常有帮助。 - Mr. Flibble
1
看一下这个问题:https://dev59.com/5HVC5IYBdhLWcg3woCnN - dmitry

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接