xss攻击-跨站脚本漏洞修复 Springboot项目
跨站脚本漏洞
XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是JavaScript,但实际上也可以包括Java、 VBScript、ActiveX、 Flash 或者甚至是普通的HTML。攻击成功后,攻击者可能得到包括但不限于更高的权限(如执行一些操作)、私密网页内容、会话和cookie等各种内容。
修复方案
对输入的数据进行转义,使其不会识别为可执行脚本
- 修复前:
<script>alert(1234)</script>
- 修复后:
<script>alert(1234)</script>
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项目相关推荐
- Web安全原理剖析(十八)——XSS平台及漏洞修复建议
目录 5.2 使用XSS平台测试XSS漏洞 5.3 XSS漏洞修复建议 5.2 使用XSS平台测试XSS漏洞 XSS平台可自行本地搭建或使用在线平台. 首先在XSS平台注册账号并登录,单击&q ...
- 服务器跨站脚本漏洞修复,如何修复XSS跨站脚本漏洞?
跨站脚本攻击的英文全称CporSSSateScript,为了更好地区分样式表,缩写为XSS.原因是网站将客户键入的内容输出到页面,在此过程中可能会有恶意代码被浏览器执行.跨站脚本攻击是指恶意攻击者将恶 ...
- 基于博弈思想的攻击图漏洞修复策略
参考文献: SmartPatch: A patch prioritization framework SmartPatch: A patch prioritization framework for ...
- XSS跨站脚本漏洞简介、原理及防护方法
目录 1.XSS跨站脚本漏洞简介 2.XSS漏洞分类 3.XSS漏洞原理 4.XSS漏洞利用 4.1XSS基础漏洞利用 4.2XSS平台利用 5.XSS攻击过程 6. XSS漏洞防护 1.XSS跨站脚 ...
- xss漏洞修复踩坑总结
一.前言 最近测试发现系统某个接口有个xss漏洞,比如,保存数据入库时,会把<a>标签保存入库:然后查看列表时,会把<a>标签显示出来: 说是这个漏洞可以构建恶意链接,点击会跳 ...
- DVWA靶场系列(六)—— XSS(跨站脚本攻击)
#免责声明: 本文属于个人笔记,仅用于学习,禁止使用于任何违法行为,任何违法行为与本人无关. 漏洞原理 XSS又叫CSS(Cross Site Script),跨站脚本攻击.它指的是恶意攻击者往Web ...
- Log4j2漏洞修复
文章目录 一.漏洞 二.修复漏洞 2.1 SpringMVC项目修复 2.2 SpringBoot项目修复 三.如何攻击漏洞 一.漏洞 近期一个 Apache Log4j 远程代码执行漏洞细节被公开, ...
- Orkut 也遭到 XSS 攻击,18 万用户受影响
继twitter遭到XSS漏洞袭击之后,Orkut也中招了.Bug发现者Infopod的Diogok说他们已经将这个可通过HTML注入代码进行XSS攻击的漏洞并报告给Orkut,尽管Diogok已经停 ...
- DNS欺骗攻击、DDoS攻击、XSS攻击和SYN Flooding攻击
DNS欺骗攻击 攻击者冒充域名服务器,向目标主机提供错误的DNS信息,当用户尝试浏览网页,输入域名访问某网页,但实际上访问到的IP地址并不是该网页的IP地址,而是攻击者准备的网页的IP地址,所以用户在 ...
最新文章
- Adaboost通俗易懂入门教程
- Python分式计算
- 地区省份城市sql信息
- STM32 IO口的八种模式使用小结
- 理论基础 —— 排序 —— 直接选择排序
- python变量的赋值操作_Python中关于变量赋值操作的实例分享
- 前端把cookie写在父域里_单点登录的三种实现方式
- 思科路由器RIP路由汇总
- 环境变量(PATH)的那些事
- 五分钟看懂python函数(同Java方法作比较)
- 索引服务器(全文索引)的使用
- 直播软件源码,实现一个简单的直播功能
- b-tree和b+tree以及mysql为什么使用了b+树
- Hackbar 免费下载+使用指南
- 原来是这样的稳压二极管
- 日语 计算机知识,「日语知识」日语输入法电脑-必读-问答
- 【转】女博士写实:为留校而读博
- vue组件名,修改了大小写导致 引入路径~报错
- python怎么制作游戏修改器_如何使用CE来修改游戏并制作一个修改器
- SpringBoot 停车场管理系统(附源码)