如何清除保存在浏览器中的http基本授权凭据



在一个有角度的应用程序中,我向一个带有http auth头的无状态rest服务器发送XHR登录请求:

http
.get(`${site.url}/login`, {
headers: {
Authorization: `Basic ${btoa(`${username}:${password}`)}`,
},
withCredentials: true,
})

任何时候我请求相同的服务器,我都不需要再次发送凭据:它们由浏览器自动保存。这很好,这样我就不必将凭据保存在浏览器上(服务器是无状态的,因此没有可用的会话或令牌(。

然而,这引入了一个安全问题:当用户注销时(这是存储在浏览器中的一个简单布尔值(,他的浏览器仍然能够连接到服务器:在XSS的情况下,有人可以再次连接。

有没有从Javascript中清除这些凭据的方法?我看到了一些黑客攻击(请求具有坏凭据的服务器…(,但我正在寻找一个一致的&安全的方式。

标头是不可变的,不能更改。然而,您可以使用一种名为JWT(JSONWebToken(的技术。这里是JWT网站的链接。

最新更新