跨站脚本漏洞

XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是JavaScript,但实际上也可以包括Java、 VBScript、ActiveX、 Flash 或者甚至是普通的HTML。攻击成功后,攻击者可能得到包括但不限于更高的权限(如执行一些操作)、私密网页内容、会话和cookie等各种内容。

修复方案

对输入的数据进行转义,使其不会识别为可执行脚本

  • 修复前:<script>alert(1234)</script>
  • 修复后: &lt;script&gt;alert(1234)&lt;/script&gt;
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;/*** 过滤器* @author ber* @version 1.0* @date 21/8/18 19:01*/
public class XSSFilter implements Filter {@Overridepublic void init(FilterConfig filterConfig) throws ServletException {}@Overridepublic void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {HttpServletRequest request =  (HttpServletRequest)servletRequest;filterChain.doFilter(new XSSRequestWrapper(request) , servletResponse);}@Overridepublic void destroy() {}}

import org.springframework.web.util.HtmlUtils;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper;/*** 对传入的恶意指令代码进行编码转换** @author ber* @version 1.0* @date 21/8/18 19:02*/
public class XSSRequestWrapper extends HttpServletRequestWrapper {public XSSRequestWrapper(HttpServletRequest request) {super(request);}@Overridepublic String[] getParameterValues(String name) {//获取所有参数值的集合String[] results = this.getParameterMap().get(name);if (results != null && results.length > 0) {int length = results.length;for (int i = 0; i < length; i++) {//过滤参数值results[i] = HtmlUtils.htmlEscape(results[i]);}return results;}return null;}}

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Component;
import org.springframework.web.method.HandlerMethod;
import org.springframework.web.servlet.mvc.method.RequestMappingInfo;
import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping;import java.util.HashSet;
import java.util.Map;
import java.util.Set;/*** 获取项目中的所有的url,并注册到过滤器中** @author ber* @version 1.0* @date 21/8/18 19:03*/
@Component
public class FilterUrlMapping {@AutowiredApplicationContext applicationContext;/*** 获取项目中的所有url** @return*/public Set<String> allUrlMappings() {Set<String> result = new HashSet();RequestMappingHandlerMapping rmhp = applicationContext.getBean(RequestMappingHandlerMapping.class);Map<RequestMappingInfo, HandlerMethod> map = rmhp.getHandlerMethods();for (RequestMappingInfo info : map.keySet()) {result.add(info.getPatternsCondition().toString().replace("[", "").replace("]", ""));}return result;}@Beanpublic FilterRegistrationBean filterRegistration() {FilterRegistrationBean filterRegistration = new FilterRegistrationBean();filterRegistration.setFilter(new XSSFilter());//添加过滤器Set<String> allSaveUrlPattern = allUrlMappings();// 若过滤所有,可使用 /* 处理filterRegistration.setUrlPatterns(allSaveUrlPattern);filterRegistration.setName("XSSFilter");return filterRegistration;}}

xss攻击-跨站脚本漏洞修复 Springboot项目相关推荐

  1. Web安全原理剖析(十八)——XSS平台及漏洞修复建议

    目录 5.2 使用XSS平台测试XSS漏洞 5.3 XSS漏洞修复建议 5.2 使用XSS平台测试XSS漏洞   XSS平台可自行本地搭建或使用在线平台.   首先在XSS平台注册账号并登录,单击&q ...

  2. 服务器跨站脚本漏洞修复,如何修复XSS跨站脚本漏洞?

    跨站脚本攻击的英文全称CporSSSateScript,为了更好地区分样式表,缩写为XSS.原因是网站将客户键入的内容输出到页面,在此过程中可能会有恶意代码被浏览器执行.跨站脚本攻击是指恶意攻击者将恶 ...

  3. 基于博弈思想的攻击图漏洞修复策略

    参考文献: SmartPatch: A patch prioritization framework SmartPatch: A patch prioritization framework for ...

  4. XSS跨站脚本漏洞简介、原理及防护方法

    目录 1.XSS跨站脚本漏洞简介 2.XSS漏洞分类 3.XSS漏洞原理 4.XSS漏洞利用 4.1XSS基础漏洞利用 4.2XSS平台利用 5.XSS攻击过程 6. XSS漏洞防护 1.XSS跨站脚 ...

  5. xss漏洞修复踩坑总结

    一.前言 最近测试发现系统某个接口有个xss漏洞,比如,保存数据入库时,会把<a>标签保存入库:然后查看列表时,会把<a>标签显示出来: 说是这个漏洞可以构建恶意链接,点击会跳 ...

  6. DVWA靶场系列(六)—— XSS(跨站脚本攻击)

    #免责声明: 本文属于个人笔记,仅用于学习,禁止使用于任何违法行为,任何违法行为与本人无关. 漏洞原理 XSS又叫CSS(Cross Site Script),跨站脚本攻击.它指的是恶意攻击者往Web ...

  7. Log4j2漏洞修复

    文章目录 一.漏洞 二.修复漏洞 2.1 SpringMVC项目修复 2.2 SpringBoot项目修复 三.如何攻击漏洞 一.漏洞 近期一个 Apache Log4j 远程代码执行漏洞细节被公开, ...

  8. Orkut 也遭到 XSS 攻击,18 万用户受影响

    继twitter遭到XSS漏洞袭击之后,Orkut也中招了.Bug发现者Infopod的Diogok说他们已经将这个可通过HTML注入代码进行XSS攻击的漏洞并报告给Orkut,尽管Diogok已经停 ...

  9. DNS欺骗攻击、DDoS攻击、XSS攻击和SYN Flooding攻击

    DNS欺骗攻击 攻击者冒充域名服务器,向目标主机提供错误的DNS信息,当用户尝试浏览网页,输入域名访问某网页,但实际上访问到的IP地址并不是该网页的IP地址,而是攻击者准备的网页的IP地址,所以用户在 ...

最新文章

  1. Adaboost通俗易懂入门教程
  2. Python分式计算
  3. 地区省份城市sql信息
  4. STM32 IO口的八种模式使用小结
  5. 理论基础 —— 排序 —— 直接选择排序
  6. python变量的赋值操作_Python中关于变量赋值操作的实例分享
  7. 前端把cookie写在父域里_单点登录的三种实现方式
  8. 思科路由器RIP路由汇总
  9. 环境变量(PATH)的那些事
  10. 五分钟看懂python函数(同Java方法作比较)
  11. 索引服务器(全文索引)的使用
  12. 直播软件源码,实现一个简单的直播功能
  13. b-tree和b+tree以及mysql为什么使用了b+树
  14. Hackbar 免费下载+使用指南
  15. 原来是这样的稳压二极管
  16. 日语 计算机知识,「日语知识」日语输入法电脑-必读-问答
  17. 【转】女博士写实:为留校而读博
  18. vue组件名,修改了大小写导致 引入路径~报错
  19. python怎么制作游戏修改器_如何使用CE来修改游戏并制作一个修改器
  20. SpringBoot 停车场管理系统(附源码)

热门文章

  1. Linux中修改环境变量及生效方法
  2. JLabel鼠标停在上面显示小手图标 点击跳转到相应网页
  3. LeetCode 283. Move Zeroes
  4. 高可用—Keepalived安装部署使用详解
  5. 作业 winform 备份原始积分派送五百分
  6. 自定义异常 java
  7. 9206 课堂笔记 综合演练 添加数据与非空验证
  8. requests-使用代理proxies
  9. 爬虫-请求头处理模块
  10. dj鲜生-37-order应用-模型类创建