admin 发表于 2017-12-9 10:08:22

Session Cookie without Secure flag set 解决方法

Session数据保存在服务器端, 但是每一个客户端都需要保存一个SessionID, SessionID保存在Cookies中, 关闭浏览器时过期.
在向服务器发送的HTTP请求中会包含SessionID, 服务器端根据SessionID获取获取此用户的Session信息.
cookie
意思是:httponly设置为true则只能通过http操纵cookie,这样防止了javascript等脚本语言对cookie做修改,帮助我们有效的防止XSS攻击.

PHP中的设置 PHP5.2以上版本已支持HttpOnly参数的设置,同样也支持全局的HttpOnly的设置,在php.ini中
-----------------------------------------------------  
session.cookie_httponly =  
-----------------------------------------------------
设置其值为1或者TRUE,来开启全局的Cookie的HttpOnly属性,当然也支持在代码中来开启:  
-----------------------------------------------------  
<?php ini_set("session.cookie_httponly", 1);  // or session_set_cookie_params(0, NULL, NULL, NULL, TRUE);  ?>  
-----------------------------------------------------
Cookie操作函数setcookie函数和setrawcookie函数也专门添加了第7个参数来做为HttpOnly的选项,开启方法为:  
-------------------------------------------------------  
setcookie("abc", "test", NULL, NULL, NULL, NULL, TRUE);  setrawcookie("abc", "test", NULL, NULL, NULL, NULL, TRUE);
-------------------------------------------------------  
对于PHP5.1以前版本以及PHP4版本的话,则需要通过header函数来变通下了:  
-------------------------------------------------------------  
<?php header("Set-Cookie: hidden=value; httpOnly"); ?>  
-------------------------------------------------------------
页: [1]
查看完整版本: Session Cookie without Secure flag set 解决方法