【问题标题】:A bit confused about use of localStorage or cookies对使用 localStorage 或 cookie 有点困惑
【发布时间】:2019-06-21 18:43:17
【问题描述】:

因此,我在多篇文章中读到 localStorage 或 sessionStorage 比 cookie 更受 xss/csrf 注入的“影响”。

首先:这是真的吗?

我知道我可以使用 cookie 来检查 xsrf 验证。

我有一个 node js 服务器和一个 react js 前端。而且,为了不错过任何东西,我使用 localStorage 来存储 JWT(我的访问令牌)。对于我通过阅读理解的内容,这真的很糟糕。

现在:我希望我的网站真的很安全,但我很困惑。

我应该停止使用 JWT,还是可以将我的 JWT 存储在安全的 cookie 中?然后添加一些关于 x-srf、xss 的额外 cookie?

或者我应该使用 cookie-session 而不是 jwt?

今天下午的读数之后,我不想再使用 localStorage(或 sessionStorage)了。

如果我不使用 JWT,我如何(以加密方式)将信息存储在 cookie 会话中?而且我必须在前端创建cookie或将cookie值从服务器发送到客户端然后设置cookie?

【问题讨论】:

    标签: node.js cookies jwt


    【解决方案1】:

    使用 Cookie 的好处是您可以将 cookie 标记为 javascript 无法访问。

    这是一个优于 LocalStorage 的优势,因为 LocalStorage 始终可以通过 javascript 访问。 LocalStorage 的安全含义是如果你有XSS安全问题,攻击者可以获得令牌。

    但是,如果您使用 cookie,它可能也可能被攻击者利用,如果您遇到了 CSRF 安全问题。或者,如果您有 XSS 问题,如果攻击者可以直接与 API 对话,他们仍然有可能使用会话。

    这里没有正确的答案,但是 cookie 或 Localstorage 通常是一个“足够好”的选项。只需尝试坚持其他安全最佳实践即可。始终注意 XSS 问题并使用超严格的 SCP 策略。这一段并不全面。 OWASP 有很好的安全指南。

    【讨论】:

    • 那么,我可以将 JWT 存储在 cookie 中吗?并使用此 cookie 进行所有验证?
    • @Stackedo 我稍微更新了我的答案。有些人确实将 JWT 存储在 cookie 中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-12
    • 1970-01-01
    • 2013-06-19
    • 2011-07-10
    • 2013-11-14
    • 1970-01-01
    • 2015-09-24
    相关资源
    最近更新 更多