小工具知识网

当前位置: 首页 > 行业知识 > springboot解决XSS存储型漏洞

行业知识

springboot解决XSS存储型漏洞

2026-11-09 19:47:09 来源:互联网转载

springboot解决XSS存储型漏洞

XSS攻击

XSS 攻击:跨站脚本攻击(Cross Site Scripting),为不和 前端层叠样式表(Cascading Style Sheets)CSS 混淆,故将跨站脚本攻击缩写为 XSS。

XSS(跨站脚本攻击):是指恶意攻击者往 Web 页面里插入恶意 Script 代码,当用户浏览该页时,嵌入其中 Web 里面的 Script 代码会被执行,从而达到恶意攻击用户的目的。类似于 sql 注入。是目前最普遍的 Web 应用安全漏洞,也是 Web 攻击中最常见的攻击方式之一。

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

XSS攻击示例:

过滤请求非法内容XSS类:XssRequestWrappers

这个类用来过滤请求非法内容,详细代码如下:

import java.util.HashMap;import java.util.Map;import java.util.Set;import java.util.regex.Pattern;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletRequestWrapper;import org.springframework.util.StringUtils;import org.springframework.web.multipart.MultipartHttpServletRequest;import org.springframework.web.multipart.commons.CommonsMultipartResolver;/** * @ClassName XssRequestWrappers * @Description TODO * @Author tongxueqiyue * @Date 2023/12/18 10:43 * @Version 1.0 */public class XssRequestWrappers extends HttpServletRequestWrapper {    private CommonsMultipartResolver multiparResolver = new CommonsMultipartResolver();    public XssRequestWrappers(HttpServletRequest request) {        super(request);        String type = request.getHeader("Content-Type");        if (!StringUtils.isEmpty(type) && type.contains("multipart/form-data")) {            MultipartHttpServletRequest multipartHttpServletRequest = multiparResolver.resolveMultipart(request);            Map stringMap = multipartHttpServletRequest.getParameterMap();            if (!stringMap.isEmpty()) {                for (String key : stringMap.keySet()) {                    String value = multipartHttpServletRequest.getParameter(key);                    striptXSS(key);                    striptXSS(value);                }            }            super.setRequest(multipartHttpServletRequest);        }    }    @Override    public String[] getParameterValues(String parameter) {        String[] values = super.getParameterValues(parameter);        if (values == null) {            return null;        }        int count = values.length;        String[] encodedValues = new String[count];        for (int i = 0; i  0) {                String[] escapseValArr = new String[valArr.length];                for (int i = 0; i 

上一篇:【LeetCode】第 387 场周赛

下一篇:服务器怎么挂链接教程视频?