【发布时间】:2017-05-14 05:50:30
【问题描述】:
我有一个单页应用程序,包含敏感内容,需要保护。这个问题专门针对 XSS 和 CSRF 攻击。
说明:很多地方都建议过,例如here,在存储身份验证令牌时在localStorage 之上使用cookie。在回答另一个问题here时也提供了一个非常好的解释。
基于这些答案,对于安全内容,建议使用带有“httpOnly”和“secure”选项的cookies来避免XSS;并自己实现 CSRF 保护(类似于anti-forgery-token in asp.net)(请注意,我不在 Asp .net 上,而是在 java 堆栈上)。
认为这些博客和对话有些陈旧,并且随着时间的推移,情况发生了一些变化。现在有了Contents-Security-Policy header [CSP] 和严格的策略,XSS 攻击的风险可以显着降低。 CSP 也是largely supported in modern-age browsers。考虑到 CSP 的 XSS 安全性,现在我觉得,使用 localStorage 代替 cookie 来避免 CSRF 是一个不错的选择。
问题:您认为使用“LocalStorage + CSP(无需手动实现)”有什么缺点/安全漏洞
结束
Cookies [httpOnly and secure] + CSRF anti-forgery-token 的“手动”实现?
考虑:
除了 CSP 响应标头之外,您可以考虑按照here 的建议,仍然支持 X-XSS-Protection 标头。
您可以认为该站点是 HTTPS,已实现 HSTS、HPKP 安全标头。
【问题讨论】:
标签: javascript security xss csrf