当前位置:  开发笔记 > 编程语言 > 正文

你如何设置在PHP中使用HttpOnly cookie

如何解决《你如何设置在PHP中使用HttpOnlycookie》经验,为你挑选了7个好方法。

我如何设置的Cookie在我PHP appsHttpOnly cookies



1> richie..:

对于PHP自己的Apache会话cookie:
将其添加到Apache配置或.htaccess


    php_flag session.cookie_httponly on

这也可以在脚本中设置,只要之前调用它session_start().

ini_set( 'session.cookie_httponly', 1 );


请注意应该使用php_flag:"不要使用php_value来设置布尔值.应该使用php_flag." http://php.net/manual/en/configuration.changes.php
+1这是一件好事(为安全起见)在整个服务器上都有一个好处,而是添加到`php.ini`.
@Nate:当更改为`php_flag`时,您还必须将值更改为"on"或"off" - 请参阅手册.

2> Cheekysoft..:

对于您的cookie,请参阅此答案.

对于PHP自己的会话cookie(PHPSESSID默认情况下),请参阅@ richie的回答

这个setcookie()setrawcookie()函数,引入了httponly参数,回到了PHP 5.2.0的黑暗时代,这使得它非常简单.根据语法,只需将第7个参数设置为true即可

为简洁起见,简化了函数语法

setcookie(    $name, $value, $expire, $path, $domain, $secure, $httponly )
setrawcookie( $name, $value, $expire, $path, $domain, $secure, $httponly )

输入NULL您希望保留为默认值的参数.您可能还想考虑是否应该设置secure参数.

也可以使用较旧的较低级header()功能:

header( "Set-Cookie: name=value; httpOnly" );



3> 小智..:

请注意,HttpOnly不会停止跨站点脚本; 相反,它中和了一种可能的攻击,目前仅在IE上执行此操作(FireFox在XmlHttpRequest中暴露HttpOnly cookie,而Safari根本不尊重它).无论如何,打开HttpOnly,但不要在交易中丢弃一小时的输出过滤和模糊测试.


现在,自08年以来,这种情况可能已发生变化.这是一个更新/更新的列表:http://stackoverflow.com/questions/528405/which-browsers-do-support-httponly-cookies

4> 小智..:

请注意,httponly默认情况下不使用PHP会话cookie .

要做到这一点:

$sess_name = session_name();
if (session_start()) {
    setcookie($sess_name, session_id(), null, '/', null, null, true);
}

这里有几点需要注意:

你必须调用session_name() 之前session_start()

这也将默认路径设置为'/',这对于Opera是必需的,但是默认情况下哪些PHP会话cookie也没有.


http://php.net/manual/en/function.session-set-cookie-params.php它可以通过上面的PHP函数自动完成,而不是自定义编码.

5> Marius..:

资源



6> Polsonby..:

这里解释来自伊利亚...... 5.2但是

PHP 5.2中的httpOnly cookie标志支持

如该文章所述,您可以在以前版本的PHP中自己设置标题

header("Set-Cookie: hidden=value; httpOnly");



7> Re0sless..:

您可以在set cookie函数中指定它,请参阅php手册

setcookie('Foo','Bar',0,'/', 'www.sample.com'  , FALSE, TRUE);

推荐阅读
手机用户2402851155
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有