javascript - 检查 Javascript 中是否存在 httponly cookie

标签 javascript cookies httponly

如问题所述,如果 cookie 是 HttpOnly,您能否确定它是否存在于 Javascript 中?我不需要访问其中的信息,只要知道它有一个即可。

关于这种情况的更多信息是,最初有一个 Web 服务器使用 cookie 作为身份验证 token ,并且由于客户端未使用它而将其设置为 httponly,因此增加了安全性。

但是现在需要进行更改,客户端需要知道它是否具有 cookie(因为站点可以在用户未登录的情况下工作,但如果用户已登录(身份验证 cookie 将存在),则站点需要显示某些东西并隐藏其他东西。

Web 服务器上还有其他安全预防措施,因此在客户端具有不正确的身份验证 cookie 的情况下没有危害,但该站点使其看起来像是已登录,因为它会删除 cookie 和拒绝用户。

最佳答案

您可以通过尝试使用 javascript 将其设置为一个值来间接检查它是否存在,如果无法设置,则 HTTP Only Cookie 必须存在(或者用户正在阻止 cookie)。

function doesHttpOnlyCookieExist(cookiename) {
  var d = new Date();
  d.setTime(d.getTime() + (1000));
  var expires = "expires=" + d.toUTCString();

  document.cookie = cookiename + "=new_value;path=/;" + expires;
  return document.cookie.indexOf(cookiename + '=') == -1;
}

关于javascript - 检查 Javascript 中是否存在 httponly cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9353630/

相关文章:

javascript - 与 cookies 混淆

javascript - jQuery AJAX 没有得到 PHP 的响应

javascript - 如何在函数之前使用动画函数

php - 注销后删除用户的 session 存在

javascript - 获取带有 cookie 的 Accordion 以记住链接状态

reactjs - 无法从react js访问httponly cookie,但可以在 postman 应用程序中访问!这怎么可能?

internet-explorer - 为什么在 IE9 中没有正确设置 HTTPOnly Cookies?

c# - HttpOnly Cookie 的问题

javascript - 如何在 jQuery 中获取文本框的更新值

javascript - 如何避免 webGL 着色器加载对 cpu 施加过多负载