我正在创建一个具有react.js前端和node.js REST后端的应用程序。
在搜索如何处理身份验证机制时,答案总是相同的,使用JWT VS session ID并将其存储在本地存储和cookie中,并发出以下警告:
Local storage is vulnerable to XSS, don't do itCookies are vulnerable to CSRF, even if they are httponly and secure, don't do itDouble Submit Cookies method is vulnerable to XSS基本上,无论我们选择哪种解决方案,我们总是容易受到XSS或CSRF的攻击。
我还是不明白。现在是2020年,而且似乎没有安全的认证机制?但后来,
H 120这是否意味着amazon.com易受XSS或CSRF的攻击?H 221f<222/code>
我还是不明白。
我认为这些网站在认证方面是安全的,虽然它们都不使用2因素身份验证或OAuth,也不要求用户在每次刷新页面时再次登录。
那么,如果所有这些网站都是安全的,为什么每个人都告诉每个人有两个解决方案(一个易受XSS攻击,另一个易受CSRF攻击)?他们如何确保他们的认证,为什么我们不能这样做呢?
发布于 2021-04-22 00:51:15
没有“一刀切”的解决方案,这真的取决于你的情况。例如,XSS保护的有效性可能取决于您对CDN的依赖程度。如果您希望尽可能安全,您需要了解您的情况和潜在解决方案的缺点,以确定您是否可以在体系结构中进行更改以支持解决方案。
对于一个简单的一般实现,我建议您将JWT存储在一个httpOnly Cookie中,这样它就不能被恶意javascript访问,并且可以将您的CSRF令牌存储在localStorage中,这样CSRF攻击者就不能访问它。
https://stackoverflow.com/questions/61343394
复制相似问题