PHP Apache 检测到会话cookie中缺少HttpOnly/Secure属性漏洞处理

最近准备上线一个网站,按照要求进行了绿盟的漏洞扫描,其中“WEB应用扫描”发现了两个问题,可以算作一个类型,一起解决。

环境:龙蜥8Linux,宝塔集成环境(Apache+PHP)

解决方法:

  1. PHP配置文件php.ini
    查找 session.cookie_httponly = 后边写1或者true
    查找 session.cookie_secure = 后边写1或者true
    根据其他配置,建议写1,如果有备注符号,记得删除。
    但是修改了以上的配置,WEB应用扫描还是有这两个漏洞,感觉是因为它是直接对文件内容进行的扫描,是不是直接获取了语句,所以接下来去程序里修改 。
  2. PHP文件
    根据漏洞风险信息提示找到对应的PHP文件(不知道为什么最后生成的报表里没有详细的信息,所以在扫描的时候拍了照片)。漏洞风险信息
    在文件内搜索setcookie,查看函数参数。
    setcookie(cookie名称, cookie值, 过期时间, 有效路径, 有效域名, secure, httponly)
    php5.2以上版本支持HttpOnly参数的设置。
    除了第一个参数必填,其他都选填,不需要的填 null 就行。
    有效路径:当设置 ‘/’ 时有效路径为根目录,所有根目录和子目录都可以访问;不设置时仅在本目录及子目录生效,上级目录的文件获取不到。
    secure:只有通过https访问时,这条语句才有用。
    httponly:只能通过http协议访问,通过JS等无法读取到cookie,防止XSS攻击。
setcookie("name", "value", null,null,null,1,1);//设置secure和httponly
setcookie("name", "value", time()+3600,null,null,1,1);//保存一小时
setcookie("name", "value", time()+3600,'/',null,1,1);//路径根目录
setcookie("name", "value", ['httponly' => true]);//设置httponly
setcookie("name", "value", ['httponly' => true, 'secure' => true]);//设置secure和httponly

添加了setcookie的第6/7个参数后,这两个漏洞不见了。
建议所有的setcookie语句都加上。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值