吐槽的话就不说了,没什么意义,今天上午接到当地网安给我的 Web 应用安全评估报告,给泪雪网强行找出了几个低危漏洞要求处理,这种两个问题就是说会话 Cookie 中缺少 HTTPSOnly 属性,还有一个就是 Secure 属性,另外两个就是 robots.txt 和网站地图 sitemap,既然强行说我有漏洞,那就积极响应整改修复,毕竟在子凡眼里是不容这种低级错误发生的。

setcookie

由于我们泪雪网使用 PHP 开发的,并且也接入了独立的用户系统,所以站点本身就会存在会话 Cookie,而有时候也会用到 Session 模式的 cookie,由于默认使用 session_start()函数就可以直接开启,有时候就像在开发的时候偷个懒,所以就导致了目前问题的存在,因为其是使用 session 只是作为临时的检查判断,并不会包含任何相关性数据或者加密信息,完全是不存在任何的安全问题和可能。

当然不排除某些程序或应用也会没有考虑到这些层面,在使用 session 模式的情况下也将敏感信息包含在 cookie,所以这样就会存在漏洞,也就可能会造成被一些脚本或者恶意注入,甚至被恶意获取相关用户信息,所以网站的安全性是不容忽视的,及时属于低危问题,也应该做到良好的避免,下面子凡就把方法给大家风向出来吧!

1
2
3
4
5
6
session_start();
$params = session_get_cookie_params();
setcookie("PHPSESSID", session_id(), 0, $params["path"], $params["domain"],
    true,  // secure 属性,默认 false.
    true  // httpOnly 属性,默认 false
);

如果你之前直接使用 session_start()函数就开启了 session,然后直接就使用$_SESSION['fanly']就开始操作使用了,那么你如果程序只针对 web 端,并且使用了 https 安全协议,那么你就可以放心大胆的使用以上子凡提供的示例代码,如果没有启用 https 记得 secure 就不要开启啦,参数为 false 即可。

当然如果你是直接使用 setcookie 设置的,那么在字段属性中记得开启即可,只要你知道 setcookie 的使用就可以搞定啦,子凡就不啰嗦啦。

当然最后子凡再简单的补充一点,就是站点如果安装了百度统计,就会出现类似“Hm_lpvt_e807202a140c60241d6cbc4cffb0a0c1”的 cookie,其中就没有使用开启 HTTPonly 以及 Secure,这点比较无奈,不过对站点是没有任何影响的,但是子凡我还是需要认真的给网安用书面形式解释清楚。

除非注明,否则均为泪雪博客原创文章,转载请以链接形式标明本文地址

本文链接:https://zhangzifan.com/setcookie-httponly-and-secure.html

发表评论

  1. 鸟叔
    1楼
    鸟叔 2个月前 (08-06)

    这个比较牛B