【发布时间】:2021-05-07 12:49:30
【问题描述】:
session_set_cookie_params 是如何工作的?
我想确保所有 cookie 都设置为 httponly=true 和 secure=true。
但不是将这些参数添加到对 setcookie() 的每次调用中,我可以
只是 - 在 session_start() 之前 - 将它们设置在 session_set_cookie_params()?
从今以后,每次调用setcookie 都会设置那些params 我每个cookie?
这将节省大量繁琐的工作(而且肯定容易出错)。
我会想象这样的事情
$cookieParams = session_get_cookie_params();
$cookieParams['httponly'] = true;
$cookieParams['secure'] = true;
session_set_cookie_params($cookieParams);
session_start();
那么现在,如果我这样做:
setcookie("ABC_user", "", time()+3600);
那个 cookie 在参数 6 和 7 中设置了那些参数?有没有办法检查它是否有效?还是有更好的方法来实现这一点?
【问题讨论】:
-
session_set_cookie_params仅影响由session_start设置的会话ID cookie(或任何其他实际与会话相关的函数,可能会重新生成会话ID cookie。)一般setcookie函数与此没有任何关系。 -
如果您希望您的普通 cookie 设置有特定的额外参数,而不必每次都将它们写出来 - 那么您最好创建自己的包装函数,使用这些明确指定的值调用
setcookie。 -
非常感谢您提供的信息。我怀疑我的愿景好得令人难以置信...... :-D
标签: php security session-cookies