对于 Angular 应用程序,我应该在哪里存储从 Auth Server 生成的 JWT 令牌?
For Angular applications where should I store the JWT Tokens those are generated from Auth Server?
我有一个带有登录页面(用户名和密码)的应用程序。身份验证成功后,我会收到来自身份验证服务器的 access_token、过期时间、刷新令牌和其他声明。
我需要在浏览器中的什么地方存储这些令牌,以便对于其他 API 请求,我可以提取 access_token 并附加到 [=21] 的 header =]?
将这些令牌存储在浏览器的 localStorage 中是否安全?
因为当我们在 Developer tools (chrome) 中查看这些标记时,它们会暴露出来。
总之,把token放在Local Storage就可以了
- 为什么?您需要了解 XXS(跨站点脚本) 攻击。
本地存储只能由 JavaScript 在您的计算机上运行的代码访问
领域。恶意 JavaScript 代码启动时会发生 XXS 攻击
到您的站点,并从本地存储中窃取您的令牌。哪里可以
这些恶意代码从何而来?来源1:CDN和第三方
图书馆。不要使用粗略的第三方代码,你会没事的。
来源 2:黑客 post 您网站上的恶意代码使用
<script>
标签。你不必担心这个,因为 Angular 忽略所有
<script>
标签.
- 您可能听说过 XSRF/CSRF(跨站请求伪造) 攻击。仅当您使用 cookie 存储令牌时才担心这一点。当黑客向用户发送您网站的 post 请求 link 并且用户点击它时,就会发生这种情况。由于浏览器总是发送同一域中的 cookie,黑客 post 请求通过身份验证。
您可以自行搜索XSS和XSRF。非常有趣的主题。
我有一个带有登录页面(用户名和密码)的应用程序。身份验证成功后,我会收到来自身份验证服务器的 access_token、过期时间、刷新令牌和其他声明。
我需要在浏览器中的什么地方存储这些令牌,以便对于其他 API 请求,我可以提取 access_token 并附加到 [=21] 的 header =]?
将这些令牌存储在浏览器的 localStorage 中是否安全?
因为当我们在 Developer tools (chrome) 中查看这些标记时,它们会暴露出来。
总之,把token放在Local Storage就可以了
- 为什么?您需要了解 XXS(跨站点脚本) 攻击。
本地存储只能由 JavaScript 在您的计算机上运行的代码访问
领域。恶意 JavaScript 代码启动时会发生 XXS 攻击
到您的站点,并从本地存储中窃取您的令牌。哪里可以
这些恶意代码从何而来?来源1:CDN和第三方
图书馆。不要使用粗略的第三方代码,你会没事的。
来源 2:黑客 post 您网站上的恶意代码使用
<script>
标签。你不必担心这个,因为 Angular 忽略所有<script>
标签. - 您可能听说过 XSRF/CSRF(跨站请求伪造) 攻击。仅当您使用 cookie 存储令牌时才担心这一点。当黑客向用户发送您网站的 post 请求 link 并且用户点击它时,就会发生这种情况。由于浏览器总是发送同一域中的 cookie,黑客 post 请求通过身份验证。
您可以自行搜索XSS和XSRF。非常有趣的主题。