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