PHP

php中session.cookie_httponly的作用

php中session.cookie_httponly的作用


今天偶然看到一个设置ini_set(“session.cookie_httponly”,1) 去搜了下作用,我理解过来就是说为了避免浏览器其他的例如JavaScript,flash等脚本轻而易举的获取 或修改到服务端存储在cookie中的信息,这样可以防止XSS攻击。


ps: httponly是微软对cookie做的扩展。

Session数据保存在服务器端, 但是每一个客户端都需要保存一个SessionID, SessionID保存在Cookies中, 关闭浏览器时过期.

在向服务器发送的HTTP请求中会包含SessionID, 服务器端根据SessionID获取获取此用户的Session信息.


PHP中的设置

PHP5.2以上版本已支持HttpOnly参数的设置,同样也支持全局的HttpOnly的设置,在php.ini中

session.cookie_httponly = true

1

设置其值为1或者TRUE,来开启全局的Cookie的HttpOnly属性,当然也支持在代码中来开启:

<?php ini_set("session.cookie_httponly", 1); 

// or session_set_cookie_params(0, NULL, NULL, NULL, TRUE); 

?>

1

2

3

Cookie操作函数setcookie函数和setrawcookie函数也专门添加了第7个参数来做为HttpOnly的选项,开启方法为:

setcookie("abc", "test", NULL, NULL, NULL, NULL, TRUE); 

setrawcookie("abc", "test", NULL, NULL, NULL, NULL, TRUE);

1

2

对于PHP5.1以前版本以及PHP4版本的话,则需要通过header函数来变通下了:

<?php header("Set-Cookie: hidden=value; httpOnly"); ?> 

————————————————


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

                        

原文链接:https://blog.csdn.net/spz1025/article/details/97894796

模板网站、标准企业网站、企业网站深度定制

- 咨询:17550720998