【问题标题】:How to use httpOnly on the client side when using jwt for authentication?使用jwt进行身份验证时如何在客户端使用httpOnly?
【发布时间】:2022-01-01 10:58:54
【问题描述】:

我了解在使用 express 和 jwt 时如何在服务器端将 cookie 设置为 httpOnly。

res.cookie("jwt", accessToken, { secure: true, httpOnly: true })

但是,我们如何利用客户端的 httpOnly 来确保身份验证过程的安全并防止 cookie 被劫持?可以举个例子解释一下吗?

我还试图了解在 httpOnly 为 false 时访问 cookie 和在 httpOnly 为 true 时访问另一个 cookie 之间的区别。我知道后者将返回空字符串,但是当使用 jwt 进行身份验证时,我们在客户端哪里使用它。我们是否应该只发送一个 ajax 调用而不去操心其他任何事情?

【问题讨论】:

  • 您不需要在客户端上使用 cookie 做任何事情,它应该随着每个请求自动发送。还要考虑使用 JWT,会话通常更容易、更安全。

标签: javascript node.js jwt cookie-httponly


【解决方案1】:

您不应将 JWT 令牌直接存储在 cookie 中,因为在浏览器中查看 cookie 的任何人都可以窃取 cookie。如果您想将 cookie 存储在 cookie 中,则应使用强加密对其进行加密。

HttpOnly 将阻止 JavaScript 访问 cookie,最好始终设置所有重要的 cookie。此外,您应该将安全属性添加到所有 cookie。还请考虑设置 SameSite 属性以使其更加安全。

【讨论】:

    猜你喜欢
    • 2020-12-04
    • 1970-01-01
    • 1970-01-01
    • 2017-10-07
    • 1970-01-01
    • 2012-01-10
    • 1970-01-01
    • 2022-10-30
    • 2014-08-23
    相关资源
    最近更新 更多