随着互联网技术的飞速发展,业务的开展方式更加灵活,应用系统更加复杂,也因此面临着更多的安全性挑战。安全测试是在应用系统投产发布之前,验证应用系统的安全性并识别潜在安全缺陷的过程,目的是防范安全风险,满足保密性、完整性、可用性等要求。
![21a559a4e0206fe770312e78c5c64621.png](https://img-blog.csdnimg.cn/img_convert/21a559a4e0206fe770312e78c5c64621.png)
日常测试过程中经常遇到开发同事来询问一些常见的配置型漏洞应该如何去修复,为了帮助开发同事快速识别并解决问题,通过总结项目的安全测试工作经验,笔者汇总、分析了应用系统的一些常见配置型漏洞并给出相应的修复建议,在这里给大家进行简单的分享。
一、Cookie缺少HttpOnly属性
漏洞描述
Cookie中的HttpOnly属性值规定了Cookie是否可以通过客户端脚本进行访问,能起到保护Cookie安全的作用,如果在Cookie中没有将HttpOnly属性设置为true,那么攻击者就可以通过程序(JS脚本、Applet等)窃取用户Cookie信息,增加攻击者的跨站脚本攻击威胁。窃取的Cookie中可能包含标识用户的敏感信息,如ASP.NET会话标识等,攻击者借助窃取的Cookie达到伪装用户身份或获取敏感信息的目的,进行跨站脚本攻击等。
![d5766fc931e280510fbf93ecff50ae9e.png](https://img-blog.csdnimg.cn/img_convert/d5766fc931e280510fbf93ecff50ae9e.png)
修复建议
向所有会话Cookie中添加"HttpOnly"属性。
1)Java语言示例:
HttpServletResponse response2 = (HttpServletResponse)response;
response2.setHeader( "Set-Cookie", "name=value; HttpOnly");
2)C#语言示例:
HttpCookie myCookie = new HttpCookie("myCookie");
myCookie.HttpOnly = true;
Response.AppendCookie(myCookie);
3)VB.NET语言示例:
Dim myCookie As HttpCookie = new HttpCookie("myCookie")
myCookie.HttpOnly = True
Response.AppendCookie(myCookie)
二、加密会话(SSL)Cookie缺少secure属性
漏洞描述
对于敏感业务,如登录、转账、支付等,需要使用HTTPS来保证传输安全性,如果会话Cookie缺少secure属性,Web应用程序通过SSL向服务器端发送不安全的Cookie,可能会导致发送到服务器的Cookie被非HTTPS页面