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