我正在使用IPB,我通过SSL(HTTPS)运行我的网站功能齐全,但我有一个问题。基本上cookie没有参数“https only”/“secure”,这在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 );
img http://gyazo.com/bb00b575477dc6bbe42b1b6be9e1c96e.png
如何强制执行“安全”参数?
答案 0 :(得分:2)
它位于setcookie() documentation中。将参数#6设置为TRUE
:
@setcookie( $_name, $value, $expires, $_path, $_domain, TRUE, TRUE );
^-#6 secure
^-#7 httponly
答案 1 :(得分: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);
请注意,httpsly参数(最后一个)是在PHP 5.2.0中添加的。