网站安全测试,会话 cookie 中缺少 HttpOnly 属性

简介: 可能会窃取或操纵客户会话和 cookie,它们可能用于模仿合法用户,从而使黑客能够以该用户身份查看或变更用户记录以及执行事务“HttpOnly”属性的会话 cookie。由于此会话 cookie 不包含“HttpOnly”属性,因此注入站点的恶意脚本可能访问此 cookie,并窃取它的值。任何存储在会话令牌中的信息都可能被窃取,并在稍后用于身份盗窃或用户伪装。

可能会窃取或操纵客户会话和 cookie,它们可能用于模仿合法用户,从而使黑客能够以该用户身份查看或变更用户记录以及执行事务


“HttpOnly”属性的会话 cookie。由于此会话 cookie 不包含“HttpOnly”属性,因此


注入站点的恶意脚本可能访问此 cookie,并窃取它的值。任何存储在会话令牌中的

信息都可能被窃取,并在稍后用于身份盗窃或用户伪装。



解决方法1

 Cookie[] cookies = ((HttpServletRequest)request).getCookies();
 if(cookies!=null)
 {
 for(Cookie cookie : cookies){
 //tomcat7 支持该属性,tomcat6 不支持
 cookie.setHttpOnly(true);
 }

我们的tomcat6上这种方法不支持,只好使用以下方法2


解决方法2


if(cookies!=null){
    for(Cookie cookie : cookies){
     //tomcat7 支持该属性,tomcat6 不支持
     String value = cookie.getValue();  
              StringBuilder builder = new StringBuilder();  
              builder.append("JSESSIONID=" + value + "; ");  
              builder.append("Secure; ");  
              builder.append("HttpOnly; ");  
              Calendar cal = Calendar.getInstance();  
              cal.add(Calendar.HOUR, 1);  
              Date date = cal.getTime();  
              Locale locale = Locale.CHINA;  
              SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss",locale); 
              builder.append("Expires=" + sdf.format(date));  
              resp.setHeader("Set-Cookie", builder.toString()); 
    }

测试发现在IE8和IE9,谷歌火狐都没有问题,在IE11上出现session丢失的问题,导致用户在IE11浏览器上登录都成了问题,最后只好升级jar包,更换为tomcat7使用如下

//tomcat7 支持该属性,tomcat6 不支持
 cookie.setHttpOnly(true);

才解决问题。

目录
相关文章
|
2月前
|
存储 搜索推荐 安全
企业出海如何做好网站Cookie合规
确保企业出海网站合规,理解Cookie在用户登录和个性化体验中的关键作用。通过Cookie携带用户信息,实现免登录和个性化服务。GDPR对Cookie使用提出限制,要求用户同意原则。第三方Cookie用于广告追踪,涉及用户画像。GDPR规定了同意条件和操作方法,企业需采用合规的交互设计。九智汇提供的Cookie自动化同意管理系统帮助企业统一管理多地网站Cookie,满足监管合规。
116 0
|
9月前
|
存储 搜索推荐 测试技术
【接口测试】如何在 Eolink Apilkit 中使用 cookie ?
有些网站是使用cookie辨别用户身份的,此时我们便可以先登录一次,拿到登录成功后的cookie,后续请求时在请求头中加入该cookie,便可保持登录状态直接请求。 cookie绕过登录其实是登录状态保持,而不是真的不需要登录。 我们调试时会经常试用cookie值,除了可以在请求头中直接输入cookie外,也可以通过cookie管理工具把cookie值保存起来。后续测试时可针对不同的域名调用不用的cookie值。
60 0
|
1月前
|
存储 编解码 应用服务中间件
会话跟踪技术(Session 以及Cookie)
会话跟踪技术(Session 以及Cookie)
|
19天前
|
存储 前端开发 JavaScript
VSCode调试揭秘:Live Server助力完美测试Cookie与Session,远超“Open in Browser“!
VSCode调试揭秘:Live Server助力完美测试Cookie与Session,远超“Open in Browser“!
|
19天前
|
存储 安全 网络协议
Django路由与会话深度探索:静态、动态路由分发,以及Cookie与Session的奥秘
Django路由与会话深度探索:静态、动态路由分发,以及Cookie与Session的奥秘
|
1月前
|
存储 安全 测试技术
《手把手教你》系列技巧篇(六十三)-java+ selenium自动化测试 - cookie -上篇(详细教程)
【6月更文挑战第4天】本文介绍了Cookie和Session的概念及其用途。Cookie是服务器发送到浏览器并存储在本地的小型文本文件,用于记录用户信息,如登录状态。它分为会话Cookie(关闭浏览器即消失)和永久Cookie(设置过期时间)。Session则是在服务器端保存用户状态的一种方式,比Cookie更安全,但会占用服务器资源。Selenium提供了操作Cookie的API,包括添加、删除和获取Cookie。文章还提到了Cookie的优缺点,如大小限制和潜在的安全风险。
42 1
《手把手教你》系列技巧篇(六十三)-java+ selenium自动化测试 - cookie -上篇(详细教程)
|
9天前
|
存储 Web App开发 JavaScript
浏览器【详解】Cookie(含Cookie的起源,属性,个数和大小限制,作用,优点,缺点,JS 的操作方法等)
浏览器【详解】Cookie(含Cookie的起源,属性,个数和大小限制,作用,优点,缺点,JS 的操作方法等)
11 0
|
1月前
|
安全 Java Maven
如何使用jsoup实现网站登录,cookie保存,查询信息
【6月更文挑战第11天】如何使用jsoup实现网站登录,cookie保存,查询信息
16 1
|
1月前
|
测试技术 Python
《手把手教你》系列技巧篇(六十五)-java+ selenium自动化测试 - cookie -下篇(详细教程)
【6月更文挑战第6天】本文介绍了如何使用WebDriver进行浏览器cookie的操作。
25 4
|
1月前
|
安全 Java Maven
使用jsoup实现网站登录,cookie保存,查询信息
【6月更文挑战第7天】使用jsoup实现网站登录,cookie保存,查询信息
15 0