cookie_httponly
1.设置方式:
在php代码的最开始的地方 设置php.ini 的配置ini_set(“session.cookie_httponly”, 1);//需要安装php的session扩展
或者直接到php.ini文件中设置 Session.cookie_httponly=1;
(init_set在当前php程序中设置有效 程序结束后失效)
2. 作用
预防xss攻击 (使用js恶意获取 网站用户的sessionId, 冒充用户身份,请求网站,进行恶意操作,造成用户信息的泄露和用户财产损失)
举例子: 某用户登录某A网站,网站中存在该用户的账号密码,网站中弹出一个恶意框框,该用户点击跳入到另一个网站B, B网站会通过js获取该用户携带进来的sessionId和A网站的地址, B网站就可以通过sesssionId获取冒充该用户的身份、请求和操作A网站,造成用户信息泄露。
3. 原理
cookie_httponly 故名思议 获取cookie只能通过http请求获取, 所以上面例子中通过js获取cookie的信息是被禁止的,只能通过ajax请求服务器时才可以获取到cookie中的sessionId。从而预防了xss攻击。
(等同于 header(“Set-Cookie: hidden=value; httpOnly”);
在客户端请求服务器时 服务器把http header头部信息返回给客户端、通知客户端浏览器cookie只能由http协议访问。)