我正在开发基于Angular 6的SPA,该SPA可以访问后端API来获取数据。该应用程序和API已使用Identity Server 4进行了保护。我正在使用oidc-client
库与Identity Server进行交互。尽管应用程序运行良好,但是有一个方面需要解决。
身份验证之后,当用户位于应用程序中并刷新浏览器(使用F5)时,Identity Server返回的身份验证令牌将丢失。为避免这种情况,有人建议将令牌保留在local storage
中。但是,由于可能的XSS攻击,也有博客建议不要这样做。
有人做过什么不同的事情吗?我可以采取哪些其他途径来解决此问题?
谢谢 苏希尔
答案 0 :(得分:0)
通常的建议是使用本地存储来存储长期数据,并使用会话存储来获取会话敏感信息,这与您使用持久性Cookie和会话cookie的方式类似服务器驱动的Web应用程序。
这不能防止XSS攻击的可能性,但是可以最大程度地减少打开SPA标签的时间。
是的,您可以切换(返回)cookie。使用 HttpOnly 和 Lax 或严格 SameSite模式进行身份验证。安全得多,但可能存在兼容性问题。