我正在运行https网站,并希望在php.ini中打开这些以提高安全性:
session.cookie_httponly = 1
session.cookie_secure = 1
我可以在网上找到很多关于这方面的信息,但是没有关于打开它时旧会话ID的持久性。
可以切换这个导致自动注销的用户,因为php现在需要安全的cookie,但登录的用户没有那些..只是在切换后?
有趣的是,我已经为我职业生涯中使用HTTPS的数百个网站改变了这一点,并且从未让所有人都记录下来。
这些.ini设置通常应用于新的会话cookie,secure
标志用于让浏览器知道不通过纯文本HTTP传输。它不应该有任何追溯后果。
session_start()
的代码调用一个名为php_session_start()
的C函数(在大多数情况下)checks $_COOKIE
。
cookie处理的代码是SAPI-dependent,但是不包含任何特定的逻辑“如果没有设置secure
,现在就把它丢弃”。
除非包含此逻辑的一些奇怪的SAPI代码,最可能发生的是不再将cookie发送到缺少HTTPS的HTTP端点,因此似乎用户正在注销(但只有当他们不在任何地方使用HTTPS时) 。
简而言之:
是的,它会将它们记录下来,因为它们的会话将结束。