Angular 2/4存储令牌

时间:2017-09-19 13:24:26

标签: angular typescript cookies local-storage token

我有一个用于生成令牌的休息api,我在角度4客户端使用,但问题是存储此令牌的位置。

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

所以我的问题是,如果商店令牌是本地存储,例如,我刚从另一个浏览器复制了有效令牌,那么我将拥有一个有效令牌,因此存在任何存储令牌的安全性,以及与cookies基本相同,或者我错过了一些重要信息?

2 个答案:

答案 0 :(得分:11)

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

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

  

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

     当外部实体能够在您的网站或应用程序中执行代码时,就会发生

跨站点脚本攻击。

     

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

     

我们的CTO过去一直认为,与XSRF攻击相比,XSS攻击更容易处理,因为它们通常被更好地理解。

所以基本上总结一下:

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

使用适当的库(例如https://github.com/auth0/angular2-jwt

非常容易设置和管理

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

您应该查看如何使用刷新令牌从工作网站(例如Twitter / Facebook等)管理身份验证。以下是您可能感兴趣的一些额外链接:

编辑:关于JWT最佳做法的附加链接:

答案 1 :(得分:-1)

它更多地是关于如何验证它而不是存储令牌的方式,你在服务器端验证相同的安全专业。

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

如果您使用令牌存储联合信息,则需要在存储之前对其进行加密。

希望这会有所帮助!!