漏洞修复:javascript框架库漏洞

  • 重现
  • 方案一:升级Servlet3.0需要兼容 Java EE 6.0 的容器,如Tomcat7
  • 方案二:利用HttpResponse的addHeader方法,设置Set-Cookie的值

JavaScript 框架或库是一组能轻松生成跨浏览器兼容的 JavaScript 代码的工具和函数。如果网站使用了存在漏洞的 JavaScript 框架或库,攻击者就可以利用此漏洞来劫持用户浏览器,进行挂马、XSS、Cookie劫持等攻击。本文主要讨论Cookie劫持攻击:设置HttpOnly,防止客户端通过JS获取Cookie信息。

重现

<script type="text/javascript" src="/js/jquery.cookie.js"></script>
<script type="text/javascript">
function getCookie(){$.alert("cookie:" + $.cookie("AUTH_TOKEN"));
</script>

如下:

方案一:升级Servlet3.0需要兼容 Java EE 6.0 的容器,如Tomcat7

maven依赖包

<dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.1.0</version><scope>provided</scope>
</dependency>

Servlet3.0中,已经支持设置HttpOnly,提供了如下API:

/*** @since Servlet 3.0*/
public interface SessionCookieConfig {............../*** @see javax.servlet.http.Cookie#setHttpOnly(boolean)*/public void setHttpOnly(boolean httpOnly);/*** @see javax.servlet.http.Cookie#isHttpOnly()*/public boolean isHttpOnly();..................
}
public class Cookie implements Cloneable, Serializable {................../*** @since Servlet 3.0*/public void setHttpOnly(boolean isHttpOnly) {this.isHttpOnly = isHttpOnly;}/*** @since Servlet 3.0*/public boolean isHttpOnly() {return isHttpOnly;}..................
}

业务代码

public static void saveCookie(HttpServletResponse response,String name,String value,int saveTime) {Cookie cookie = new Cookie(name, value);cookie.setMaxAge(saveTime);cookie.setPath("/");// Servlet3.0提供setHttpOnly()方法。cookie.setHttpOnly(true);response.addCookie(cookie);
}

效果:

方案二:利用HttpResponse的addHeader方法,设置Set-Cookie的值

import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletResponse;public class CookieUtil {/*** 设置HttpOnly Cookie* @param response HTTP响应* @param cookie Cookie对象* @param isHTTPOnly 是否为HttpOnly*/public static void addCookie(HttpServletResponse response, Cookie cookie, boolean isHttpOnly) {String name = cookie.getName();//Cookie名称String value = cookie.getValue();//Cookie值int maxAge = cookie.getMaxAge();//最大生存时间(毫秒,0代表删除,-1代表与浏览器会话一致)String path = cookie.getPath();//路径String domain = cookie.getDomain();//域boolean isSecure = cookie.getSecure();//是否为安全协议信息 StringBuilder buffer = new StringBuilder();buffer.append(name).append("=").append(value).append(";");if (path != null) {buffer.append("path=").append(path).append(";");}if (isHttpOnly) {buffer.append("HttpOnly;");}response.addHeader("Set-Cookie", buffer.toString());}
}

业务代码

public static void saveCookie(HttpServletResponse response,String name,String value,int saveTime) {Cookie cookie = new Cookie(name, value);cookie.setMaxAge(saveTime);cookie.setPath("/");CookieUtil.addCookie(response, cookie, true);
}

效果同方案一

漏洞修复:javascript框架库漏洞相关推荐

  1. javascript漏洞-检测到目标站点存在javascript框架库漏洞

    一般是让升级为最新的版本的脚本文件,但是实际使用过程中,有的插件不兼容,盲目升级会导致网站部分插件不可用. 下面是一种解决方案. 比如漏洞扫描出jquery:2.1.4.作以下处理: 一.根据web应 ...

  2. Javascript框架库漏洞验证

    Javascript框架库漏洞

  3. js页面检测到目标站点存在javascript框架库漏洞

    一.概述 在系统验收前安全检查时,绿盟检查到系统存在页面检测到目标站点存在javascript框架库漏洞,如下所示: 二.分析处理 这个漏洞是绿盟扫描比较常见的一个漏洞,原因就是jquery版本过低. ...

  4. 检测到目标站点存在javascript框架库漏洞

    这个漏洞是绿盟扫描比较常见的一个漏洞,原因就是jquery版本过低.升级到3.3以上就可以了. ----------重点专用分割线---------- vue项目并没有所谓的Jquery,为什么还会扫 ...

  5. 检测到目标站点存在javascript框架库漏洞 (随手记录)

    问题总结: js-cookie 系列解决问题 vue项目里面引用了js-cookie用来存放登录的一些信息了.删除js-cookie重新打包就可以了.至于页面上的数据,那就存放在localstroge ...

  6. javascript框架库_2019年使用的最佳JavaScript框架,库和工具

    javascript框架库 似乎有比开发人员更多JavaScript框架,库和工具. 在2018年底, 在GitHub上的快速搜索显示230万个JavaScript项目. npm已成为全球最大的模块系 ...

  7. java+poodle漏洞修复_SSL3.0 POODLE漏洞修复方案

    SSL3.0 POODLE漏洞修复方案 发布时间:2014-10-15 15:02:27 关于SSLPOODLE漏洞 POODLE = Padding Oracle On Downgraded Leg ...

  8. 简洁、快速的JavaScript框架/库:jQuery

    基础知识 简介 jQuery是一个快速.简洁的JavaScript框架. jQuery设计的宗旨是"write Less,Do More",即倡导写更少的代码,做更多的事情. jQ ...

  9. java 框架注入漏洞修复_Mybatis框架下易产生SQL注入漏洞的场景和修复方法

    一.Mybatis框架下易产生SQL注入漏洞的场景 在基于Mybatis框架的Java白盒代码审计工作中,通常将着手点定位在Mybatis的配置文件中.通过查看这些与数据库交互的配置文件来确定SQL语 ...

  10. 4加密问题漏洞修复_Apache Shiro 反序列化漏洞实战

    Apache Shiro是一个Java安全框架,执行身份验证.授权.密码和会话管理.2016年,网络中曝光1.2.4以前的版本存在反序列化漏洞.尽管该漏洞已经曝光几年,但是在实战中仍然比较实用.花了点 ...

最新文章

  1. java script DOM操作
  2. RHEV平台中如何在 RED HAT ENTERPRISE LINUX 虚拟机上安装 GUEST 代理和驱动
  3. 计算机信息技术应用的困惑,信息技术教育的困惑
  4. CSS设置样式时,鼠标移动到div上,发生抖动问题解决办法
  5. 华为路由器RIP协议通信的配置
  6. mysql手动写的时间_Mysql日期和时间函数
  7. gradle java_Java EE,Gradle和集成测试
  8. 太长的sql怎么分析_因为ESR, 我一定要推荐你这款 SQL 神器
  9. 联想拯救者Y90关键参数曝光:22GB运存+640GB超大存储
  10. 4.linux基础1
  11. 紫罗兰永恒花园rust简谱_みちしるべ简谱-紫罗兰永恒花园ed
  12. 天气数据API接口记录
  13. 项目部署到SVN上以及SVN修改项目名称详细步骤
  14. 每天记忆五个词根之四
  15. 博士员工离职率21.8%,任正非反思:华为这么大,英雄为何无用武之地?
  16. 【FPGA】五、蜂鸣器播放音乐
  17. excel中如何在一列数据的前面统一加上一个符号
  18. MATLAB矩阵生成
  19. Go之Benchmark
  20. 易飞9.0.12官方正版安装程序下载地址

热门文章

  1. 8.18 @烤仔建工 | 抓住夏天的尾巴,和烤仔一起打造秘密花园吧
  2. 一口一个超酥脆的宝宝小零食,超简单的做法哦
  3. linux设备模型五(device和device_driver)
  4. 图像算法---白平衡AWB(讲的很好)
  5. 树莓派CM4设置静态IP地址(已解决)
  6. [BZOJ5145] [Ynoi2018] 五彩斑斓的世界 [并查集][分块][摊还分析]
  7. 星际争霸2 AI开发(持续更新)
  8. 分享几套Easypanel用户后台模板源码优化版
  9. 关于skl计算机题目,系统崩溃,并且您不能更改 Windows 8.1 或 Windows Server 2012 R2 中的英特尔 SKL 平台上的 CPU 频率...
  10. 本地计算机策略打不开怎么办,我的电脑的本地组策略编辑器怎么打不开?