【问题标题】:Why is expressjs sending Set-Cookie header with every OPTIONS response?为什么 expressjs 在每个 OPTIONS 响应中都发送 Set-Cookie 标头?
【发布时间】:2014-06-22 15:33:13
【问题描述】:

我观察到我的 express 服务器会发送一个 Set-Cookie 标头来响应我的前端 Angular.js 项目发出的每个 OPTIONS 请求。

cookie 在每个OPTIONS 请求上都有一个新值,但实际上从未被 铬。

当我使用 passport.js 对用户进行身份验证时,对 POST 请求的响应具有相同的标头(再次带有新的 cookie),但这次我可以看到它已存储,并与后续请求一起发送在Cookie 标头中。

哪个 express 模块正在这样做,为什么?为什么 Chrome 不存储 cookie?

这比什么都更让人好奇,因为它不会引起任何问题(只是在试图追踪一个时引起了很多混乱)。

【问题讨论】:

  • 你在使用cookie会话吗?
  • @Sean - 您还在这里寻找什么?

标签: javascript node.js cookies express passport.js


【解决方案1】:

很确定这是当前会话模块的错误。如果您使用的是新的 cookie 会话,则不会遇到此问题。随时提交错误:https://github.com/expressjs/session

【讨论】:

  • 嗯。问了两个问题,得到了两个答案。我和另一个一起去,但我认为你的也是正确的。
【解决方案2】:

方法 OPTIONS 不应该有副作用。请参阅此 HTTP 1.1 documentation

OPTIONS 是对服务器的信息请求。这样的请求不被视为用户和服务器之间的真正交互。服务器可能会将信息提供给所有用户。

浏览器尊重这一点并选择忽略 cookie,符合规范。也就是说,将 cookie 数据公开传递给用户存在安全风险。即使它无效,它也可以泄露服务器端内部信息,从而使黑客能够利用它。

【讨论】:

    猜你喜欢
    • 2011-08-01
    • 1970-01-01
    • 2017-03-01
    • 2011-01-28
    • 1970-01-01
    • 2015-03-31
    • 1970-01-01
    • 2017-08-01
    • 1970-01-01
    相关资源
    最近更新 更多