Session 令牌认证安全

Session Token Authentication Security

我需要一些关于使用 session 令牌对用户进行身份验证的建议。我正在构建一个 AngularJS 应用程序,它使用 API 与后端配合。我只做前端,不做后端。文档指出对 API 的所有调用都在请求的 body 中附加了一个 session 标记 (POST)。

  1. 我想知道将此令牌存储在 localStorage 中的安全性。这就是我现在存储它并检索它并将其附加到每个 API 请求的地方。登录后,服务器在 body 中发送 session 令牌,我从那里保存它。

  2. 没有关于应与向服务器发出的请求一起发送的 x-access-token header 的文档。它没有被检查服务器端。这意味着什么?我觉得如果没有这个额外的安全层,它很容易受到攻击。

我主要担心的是此设置的安全性。我想知道什么是确保此应用尽可能安全的最佳设置,并建议更改后端的设置方式以促进这一点。

谢谢!

我建议使用 $cookies 而不是 localstorage。由于 localstorage 不支持某些旧版浏览器。 我在我的项目中使用 cookie 来存储令牌

如您所说,您只在处理 UI 部分而不是后端。后端团队要确保 header 得到正确评估并执行安全措施(顺便说一下,请求 header 不属于请求 body)。只需按照他们所说的将令牌放入 x-access-token header。

将令牌存储在 localStorage 中可以让您更好地控制 cookie:您不会不小心将它发送到不必要的 URL。但是,旧版浏览器不支持它 - 您可能需要为此使用垫片。

在 SPA 的情况下,您可以考虑根本不存储令牌:每次访问您的应用程序时都可以获取令牌,然后将其存储在 angularjs 中的服务中,但这取决于您的 fetch/login 操作实现(是否始终交互,需要多长时间等)。