繁体   English   中英

Angular 2/4 存储令牌的位置

[英]Angular 2/4 where to store token

我有一个用于生成令牌的 rest api,我在 angular 4 客户端使用它,但问题是在哪里存储这个令牌。

在互联网上,我发现我可以存储在本地存储或 cookie 中。

所以我的问题是,例如,如果存储令牌是本地存储,并且我刚刚从另一个浏览器复制了有效令牌,那么我将拥有一个有效令牌,因此像这样存储令牌有任何安全性,并且基本相同使用 cookie,或者我错过了一些重要信息?

这是一篇关于 Tokens / Cookies 的完整文章,可以为您提供有关此主题的大量知识: auth0:Cookies VS Tokens

我将引用最重要的部分,让您了解接下来会发生什么:

网站面临的两种最常见的攻击媒介是跨站脚本 (XSS) 和跨站请求伪造(XSRF 或 CSRF)。

跨站点脚本)攻击发生在外部实体能够在您的网站或应用程序中执行代码时。

如果您将 JWT 与本地存储一起使用,则跨站点请求伪造攻击不是问题。 另一方面,如果您的用例要求您将 JWT 存储在 cookie 中,您将需要防止 XSRF。

我们的 CTO 过去曾辩称,与 XSRF 攻击相比,XSS 攻击更容易处理,因为它们通常更容易理解。

所以基本上总结一下:

因此,我建议使用标准的 JWT 令牌方法来管理您的令牌。 由于您的令牌是使用JWT格式签名的,因此我认为这是最安全的解决方案。 当然,标准令牌需要加密签名(不一样)才能真正安全。

使用适当的库(例如https://github.com/auth0/angular2-jwt )非常容易设置和管理


更进一步:我想您的令牌将用于身份验证,并注意人们已经使用过它并知道使用它们的好/坏做法。

您应该看看如何从使用Refresh Tokens 的工作网站(例如 Twitter / Facebook 等)管理身份验证。 以下是您可能感兴趣的一些附加链接:


编辑:关于 JWT 最佳实践的附加链接:

它更多地是关于你将如何验证它而不是你如何存储令牌,你已经采取了哪些安全专业来在服务器端验证相同。

如果您有启用 CORS 的 API,您需要确保请求来自有效客户端而不是来自恶意来源。

如果您使用 Token 存储机密信息,则需要在存储前对其进行加密。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM