【问题标题】:How to clear http basic Authorization credentials saved in the browser如何清除浏览器中保存的 http 基本授权凭据
【发布时间】:2021-02-04 02:26:33
【问题描述】:

在 Angular 应用程序中,我将 XHR 登录请求发送到带有 http auth 标头的无状态休息服务器:

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

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

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

有什么方法可以通过 Javascript 清除这些凭据?我看到了一些黑客行为(使用错误的凭据请求服务器...),但我正在寻找一种一致且安全的方法。

【问题讨论】:

    标签: javascript angular cross-browser http-authentication


    【解决方案1】:

    标头是不可变的 - 它们无法更改。但是您可以使用一种称为 JWT (JSON Web Token) 的技术。Here a link for JWT's website.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-07-17
      • 2011-12-15
      • 2018-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-13
      相关资源
      最近更新 更多