这篇文章主要为大家详细介绍了php5.2环境 Cookie没有HttpOnly标志 的解决办法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,有需要的朋友可以收藏方便以后借鉴。
做网站的朋友大部分都会很在意网站的安全,很多都会使用360检测网站是否存在漏洞或者不安全因素。360检测中检查会有这样一个不安全提示:Cookie没有HttpOnly标志。查看了360官方的解决方案,大概分为以下4个办法来处理对一些重要的Cookie添加HttpOnl
Cookie没有HttpOnly标志
javaEE:
response.setHeader("Set-Cookie", "cookiename=value; Path=/;Domain=domainvalue;Max-Age=seconds;HTTPOnly");
设置完毕后通过js脚本是读不到该cookie的,但使用如下方式可以读取 Cookie cookies[]=request.getCookies();。
Servlet3:
在web.xml中添加如下片段: true true。
PHP4:
header("Set-Cookie: hidden=value; httpOnly");
PHP5:
setcookie("abc", "test", NULL, NULL, NULL, NULL, TRUE); 最后一个参数为HttpOnly属性
C#:
HttpCookie myCookie = new HttpCookie("myCookie"); myCookie.HttpOnly = true; Response.AppendCookie(myCookie);
VB.NET:
Dim myCookie As HttpCookie = new HttpCookie("myCookie") myCookie.HttpOnly = True Response.AppendCookie(myCookie)
在 .NET 1.1 中您需要手动添加:
Response.Cookies[cookie].Path += ";HTTPOnly";
网上大神的一些解决办法:
PHP5.2以上版本已支持HttpOnly参数的设置,同样也支持全局的HttpOnly的设置,在php.ini中
-----------------------------------------------------
session.cookie_httponly =
-----------------------------------------------------
设置其值为1或者TRUE,来开启全局的Cookie的HttpOnly属性,当然也支持在代码中来开启:
Discuz解决办法:
Discuz只在 用户登录信息里默认使用HttpOnly(PHP版本不能低于5.2),这基本够了,cookie最重要的就是登录信息了, 360扫描系统一般是游客身份访问网站,没有HttpOnly正常 你想全部cookie都HttpOnly,打开 source/function/function_core.php 找到 $httponly = false) 改为 $httponly = true)
大型站长资讯类网站! https://www.0818zz.com