打开session.cookie_secure会注销我的用户吗?

时间:2015-09-11 14:01:28

标签: php security session-cookies

我正在运行https网站,并希望在php.ini中打开这些以提高安全性:

session.cookie_httponly = 1
session.cookie_secure = 1

我可以在网上找到很多关于此内容的信息,但是在开启此功能时却没有关于旧会话ID的持久性。

启用此功能会导致自动注销用户,因为php现在需要安全cookie,但是登录后的用户没有那些......只是在切换后?

2 个答案:

答案 0 :(得分:5)

有趣的是,我已经为我职业生涯中使用HTTPS的数百个网站启用了这一功能,并且从未让所有人都注销。

这些.ini设置通常应用于新会话cookie,secure标志用于让浏览器知道不通过纯文本HTTP传输。它不应该有任何追溯后果。

session_start()的代码调用名为php_session_start()的C函数(在大多数情况下)checks $_COOKIE

Cookie处理的代码是SAPI-dependent,但不包含“如果secure未设置的任何特定逻辑,请立即将其丢弃”。

除非包含此逻辑的一些奇怪的SAPI代码,最可能发生的是不再将cookie发送到缺少HTTPS的HTTP端点,因此用户似乎正在注销(但只有在他们不使用时)到处都是HTTPS。

简而言之:

  • 不,不应该记录用户,除非他们没有通过HTTPS浏览(他们应该这样做)
  • 但是,如果发生 ,那么暂时的不便就值得获得安全保障。

答案 1 :(得分:0)

是的,它会将它们记录下来,因为它们的会话将会结束。