【问题标题】:Restore a session with cookies from another browser with Javascript使用 Javascript 从另一个浏览器恢复带有 cookie 的会话
【发布时间】:2020-12-14 10:07:58
【问题描述】:

假设我在浏览器中的网站/服务https://example.com 上登录(使用登录名/密码)。如果我打开 Developer tools,我可以在控制台中运行 document.cookie 并复制包含与当前网站关联的所有 cookie 的字符串。

然后我打开一个新的隐身窗口,我转到https://example.com。当然,我没有登录,我可以在Developer tools控制台用Clearing all cookies with JavaScript中描述的方法删除当前cookies,然后恢复之前复制的cookies:

document.cookie = "<the string that I copied before>"

然后在页面重新加载(F5)之后,我希望再次登录,但它没有工作。使用document.cookie = "&lt;the string that I copied before&gt;" 设置的 cookie 不会被保留。 (例如,在 Reddit 的情况下,它不起作用。)

这种在“开发者工具”中从另一个浏览器的上一个会话中设置 cookie 的 JS 方法有什么问题?它不应该工作吗?

【问题讨论】:

  • “我可以在控制台中运行 document.cookie 并复制包含与当前网站关联的所有 cookie 的字符串。” - 不,不是全部我> 他们。只有那些,首先可以被客户端 JavaScript 访问。 (关键字:httpOnly
  • 谢谢@CBroe,我想这就是答案。所以没有办法将完整的 cookie / 登录会话恢复到另一个浏览器 / 或同一浏览器的隐身窗口?

标签: javascript cookies developer-tools


【解决方案1】:

一般情况下,session id 设置为 server only,你无法在 JS/console 中获取 session id。

来源:https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies#Restrict_access_to_cookies

【讨论】:

猜你喜欢
  • 2018-10-25
  • 2020-01-20
  • 1970-01-01
  • 2014-07-25
  • 2017-09-05
  • 1970-01-01
  • 2010-10-26
  • 2011-08-05
  • 1970-01-01
相关资源
最近更新 更多