【问题标题】:Does php send a cookie to localhost with HTTP when session_start() with cookie_secure equal to true?当 cookie_secure 的 session_start() 等于 true 时,php 是否使用 HTTP 向 localhost 发送 cookie?
【发布时间】:2022-01-20 01:06:08
【问题描述】:

如果我为服务器启动如下所示的会话,并且 localhost 客户端尝试通过 HTTP 请求服务器,它会以 session cookie 响应吗?

还是必须通过 HTTPS?

我阅读了doc,它确实说只能通过 HTTPS,但我想知道 localhost 是否是一个例外。

session_start([
    'cookie_secure' => true
]);

【问题讨论】:

  • PHP 本身甚至不知道它运行在什么上; cookie_secure 在 cookie 本身上设置一个标志,浏览器会解释并(希望)遵守该标志。因此,如果有的话,浏览器 可能会产生异常。但 AFAIK 他们通常不会。

标签: php cookies


【解决方案1】:

是的,确实如此:

如果您在浏览器中尝试此操作,您还会看到一条警告说 cookie 被拒绝。

这是有道理的,因为 PHP 无法控制整个通信通道,并且最终用户可能连接到安全代理,该代理在内部重定向到未加密的 HTTP 服务器。

【讨论】:

  • 谢谢。此外,事实证明,当响应来自本地主机(例如 http://localhost:xxxx/)时,浏览器将接受 secure cookie
  • @ikhvjs 没错:Restrict access to cookies
猜你喜欢
  • 2014-03-22
  • 2020-09-19
  • 2017-09-14
  • 1970-01-01
  • 2021-04-04
  • 2011-10-08
  • 2012-01-27
  • 1970-01-01
  • 2015-06-13
相关资源
最近更新 更多