Javascript:从 cookie 中读取会话 ID
Posted
技术标签:
【中文标题】Javascript:从 cookie 中读取会话 ID【英文标题】:Javascript: Read out session id from cookie 【发布时间】:2012-08-09 02:24:07 【问题描述】:对于 websockets,我必须从 cookie 中公开我的 sessionid。
我搜索了一下,发现应该可以通过以下方式访问cookies:
console.log(document.cookie);
不幸的是,这不起作用或更好的 document.cookie 包含一个空字符串,即使 chrome 本身向我显示 cookie 也可以进行身份验证。
难道是chrome隐藏了javascript的cookie?
【问题讨论】:
【参考方案1】:如果服务器配置为使用the HttpOnly
flag 发送会话cookie,就会发生这种情况。这样,cookie 就变得对 JS 等客户端脚本语言不可见/不可访问。
要实现您的具体功能要求,要么重新配置服务器以不这样做,要么寻找替代方法,例如设置一个自定义 cookie(当然没有 HttpOnly
标志),或者让服务器端视图技术将当前会话 ID 动态打印为 JS 变量或某个 html 元素的属性,以便 JS 可以通过遍历HTML DOM。
【讨论】:
嗨,我需要一些时间来找出为什么 cookie: httpOnly: false 在 express 中不起作用。但是,您的回答听起来很合乎逻辑。将 httpOnly 标志更改为 false 有什么缺点吗? 您可以在同一个 Chrome cookie 表中确认它是否真的是HttpOnly
。至于服务器配置,请随时提出一个新问题。我至少从未听说过“快速”服务器。至于缺点,它只会增加 XSS 攻击成功的风险,但如果在重新显示期间正确地对任何用户控制的数据进行 HTML 转义,则无需害怕。
好的。我只需要知道。 Byside express 是一个类似 senetra (RoR) 的 node.js 框架以上是关于Javascript:从 cookie 中读取会话 ID的主要内容,如果未能解决你的问题,请参考以下文章
2018-09-08Cookie的发送和Cookie的读取+Session基本原理
在 PHP 中删除 JavaScript 会话 Cookie [重复]
javaScript中的Cookie和web Storage(LocalStorage-SessionStorage)详解
javaScript中的Cookie和web Storage(LocalStorage-SessionStorage)详解