0

我正在使用 IPB,并且我通过 SSL (HTTPS) 运行我的网站功能齐全,但我有一个问题。基本上,cookie 没有“仅 https”/“安全”参数,这在 SSL 关闭的情况下非常重要,这样 cookie 就无法通过 HTTP(纯文本)传输。我读过一篇关于如何做到这一点的文章,但它不适用于 IPB。这是它的设置方式:

 Line 4227:    @setcookie( $_name, $value, $expires, $_path, $_domain . '; HttpOnly' );
 Line 4231:    @setcookie( $_name, $value, $expires, $_path );
 Line 4236:    @setcookie( $_name, $value, $expires, $_path, $_domain, NULL, TRUE );
 Line 4241:    @setcookie( $_name, $value, $expires, $_path, $_domain );

图像
(来源:gyazo.com

如何强制执行“安全”参数?

4

2 回答 2

2

它在setcookie() 文档中是正确的。将参数 #6 设置为TRUE

@setcookie( $_name, $value, $expires, $_path, $_domain, TRUE, TRUE );
                                                        ^-#6 secure
                                                              ^-#7 httponly
于 2013-08-12T21:42:11.677 回答
0

对于会话 cookie,您可以在 PHP.INI 文件中设置默认值:

session.cookie_httponly = On
session.cookie_secure = On

或者您可以在开始会话之前在运行时设置这些。

session_set_cookie_params($expires, $_path, $_domain, TRUE, TRUE);
session_start();

对于所有其他 cookie,您将需要使用 setcookie 函数的参数。

setcookie($_name, $_value, $expires, $_path, $_domain, TRUE, TRUE);

请注意,httponly 参数(最后一个)是在 PHP 5.2.0 中添加的。

于 2013-08-12T22:10:29.127 回答