php httponly cookies在浏览器关闭时被删除

时间:2015-04-08 14:52:56

标签: javascript php session cookies

我正在我的网站“记住我”功能,我正在使用session_set_cookie_params来保持会话活着,即使用户决定关闭他或她的浏览器。我遇到的问题是浏览器删除cookie,即使我将它们设置为持久性,这只有在我将cookie上的HttpOnly标志设置为true时才会发生。

以下是我所拥有的一些pseucode:

  

为php ini设置cookie生存期

     

为php ini设置垃圾收集器最大生命周期

     

确定用户是否想要持久会话

     

设置会话cookie的时间并确保它使用HttpOnly

     

开始会话

以下是我目前对正在使用的功能的理解,如果我错了,请告诉我:

  • 使用session_set_cookie_params时,如果希望在浏览器关闭时删除会话,请将时间设置为0。
  • 将时间设置为大于零的值,会话cookie将在该时间内保持活动状态。
  • 如果您不希望通过javascript
  • 访问Cookie,请将HttpOnly设置为true

在这种情况下,我绝对不希望通过javascript访问cookie。我做错了吗?

另请告诉我是否应该添加更多信息,这是我第一次提问。谢谢。

1 个答案:

答案 0 :(得分:0)

好吧所以我最终解决了这个问题,因为事实证明它与HttpOnly标志无关。最后,它必须将cookie的持久性设置在错误的位置。

所以问题在于,当我在设置cookie之前使用setcookie是持久的时候。为了解决这个问题,我只需在调用setcookie函数之前将cookie设置为持久化。

我很抱歉认为错误与HttpOnly标志有关,这是一个我不应该做的大假设。