当前位置: 首页 > news >正文

短链接生成站长工具网站备案截图

短链接生成站长工具,网站备案截图,网站运营公司排名,成都蓉城最新消息springboot解决XSS存储型漏洞 XSS攻击 XSS 攻击#xff1a;跨站脚本攻击(Cross Site Scripting)#xff0c;为不和 前端层叠样式表(Cascading Style Sheets)CSS 混淆#xff0c;故将跨站脚本攻击缩写为 XSS。 XSS(跨站脚本攻击)#xff1a;是指恶意攻击者往 Web 页面里插…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);MapString, String[] stringMap multipartHttpServletRequest.getParameterMap();if (!stringMap.isEmpty()) {for (String key : stringMap.keySet()) {String value multipartHttpServletRequest.getParameter(key);striptXSS(key);striptXSS(value);}}super.setRequest(multipartHttpServletRequest);}}Overridepublic 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 count; i) {encodedValues[i] striptXSS(values[i]);}return encodedValues;}Overridepublic String getParameter(String parameter) {String value super.getParameter(parameter);return striptXSS(value);}Overridepublic String getHeader(String name) {String value super.getHeader(name);return striptXSS(value);}Overridepublic MapString, String[] getParameterMap() {MapString, String[] map1 super.getParameterMap();MapString, String[] escapseMap new HashMapString, String[]();SetString keys map1.keySet();for (String key : keys) {String[] valArr map1.get(key);if (valArr ! null valArr.length 0) {String[] escapseValArr new String[valArr.length];for (int i 0; i valArr.length; i) {String escapseVal striptXSS(valArr[i]);escapseValArr[i] escapseVal;}escapseMap.put(key, escapseValArr);}}return escapseMap;}//处理非法内容如果有新的在此处增加即可public static String striptXSS(String value) {if (value ! null) {// 替换空字符串以便清除潜在的恶意脚本value value.replaceAll(, );// 移除script标签及其内容Pattern scriptPattern Pattern.compile(script(.*?)/script, Pattern.CASE_INSENSITIVE);value scriptPattern.matcher(value).replaceAll();// 移除带有src属性的标签支持单引号和双引号包围的属性值scriptPattern Pattern.compile(src[\r\n]*[\r\n]*\\\(.*?)\\\, Pattern.CASE_INSENSITIVE | Pattern.MULTILINE | Pattern.DOTALL);value scriptPattern.matcher(value).replaceAll();scriptPattern Pattern.compile(src[\r\n]*[\r\n]*\\\(.*?)\\\, Pattern.CASE_INSENSITIVE | Pattern.MULTILINE | Pattern.DOTALL);value scriptPattern.matcher(value).replaceAll();// 移除/script标签scriptPattern Pattern.compile(/script, Pattern.CASE_INSENSITIVE);value scriptPattern.matcher(value).replaceAll();// 移除以script...开头的标签scriptPattern Pattern.compile(script(.*?), Pattern.CASE_INSENSITIVE | Pattern.MULTILINE | Pattern.DOTALL);value scriptPattern.matcher(value).replaceAll();// 移除eval()函数调用scriptPattern Pattern.compile(eval\\((.*?)\\), Pattern.CASE_INSENSITIVE | Pattern.MULTILINE | Pattern.DOTALL);value scriptPattern.matcher(value).replaceAll();// 移除expression()函数调用scriptPattern Pattern.compile(e­xpression\\((.*?)\\), Pattern.CASE_INSENSITIVE | Pattern.MULTILINE | Pattern.DOTALL);value scriptPattern.matcher(value).replaceAll();// 移除以javascript:开头的字符串scriptPattern Pattern.compile(javascript:, Pattern.CASE_INSENSITIVE);value scriptPattern.matcher(value).replaceAll();// 移除以vbscript:开头的字符串scriptPattern Pattern.compile(vbscript:, Pattern.CASE_INSENSITIVE);value scriptPattern.matcher(value).replaceAll();// 移除以onload...开头的字符串scriptPattern Pattern.compile(onload(.*?), Pattern.CASE_INSENSITIVE | Pattern.MULTILINE | Pattern.DOTALL);value scriptPattern.matcher(value).replaceAll();// 移除包含任何和字符的字符串scriptPattern Pattern.compile(.*.*, Pattern.CASE_INSENSITIVE);value scriptPattern.matcher(value).replaceAll();}// 返回处理后的字符串return value;} }定义过滤器监听XSSFilter 重写Filter 在这个过滤器中监听XSSFilter使用上面写的XssRequestWrappers来处理请求中的非法内容 import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest;/*** ClassName XSSFilter* Description TODO* Author tongxueqiyue* Date 2023/12/18 10:45* Version 1.0*/ public class XSSFilter implements Filter {Overridepublic void init(FilterConfig arg0) throws ServletException {}Overridepublic void destroy() {}Overridepublic void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)throws IOException, ServletException {chain.doFilter(new XssRequestWrappers((HttpServletRequest) request), response);} }注册这个XSSFilter为Bean import org.springframework.boot.web.servlet.FilterRegistrationBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration;Configuration public class WebConfig {Beanpublic FilterRegistrationBeanXSSFilter xssFilterRegistrationBean() {FilterRegistrationBeanXSSFilter registrationBean new FilterRegistrationBean();registrationBean.setFilter(new XSSFilter());registrationBean.addUrlPatterns(/*); // 这里配置需要过滤的URLregistrationBean.setName(xssFilter);registrationBean.setOrder(1); // 设置过滤器的执行顺序数字越小越优先return registrationBean;} }执行这三步应该就可以了不过启动可能会报错如果报错添加以下依赖即可 dependencygroupIdcommons-fileupload/groupIdartifactIdcommons-fileupload/artifactIdversion1.4/version /dependency到这里XSS存储型漏洞应该就能解决了 参考 https://blog.csdn.net/qq_25580555/article/details/128237542 https://blog.csdn.net/qq_26244285/article/details/122586506
http://wiki.neutronadmin.com/news/319918/

相关文章:

  • 网站开发core文件作用广告设计图片大全 模板
  • 珠海网站制作软件建做网站
  • 网站开发注意重庆口碑最好的装修公司
  • 吉利网站建设手机版网站模板
  • 企业网站建公司wordpress首页幻灯片
  • 成都网站logo设计wordpress 主机配置
  • seo站长工具查询系统做网站的几个步骤
  • 阿里云 iis 多个网站西安做app开发的公司
  • 昌平网站建设公司百度云 wordpress 固定链接
  • 本地网站建设开发信息大全有没有小学生做兼职的网站
  • 海鲜网站开发目的在于吴忠住房和城乡建设网站
  • 湖南涟钢建设有限公司网站站长之家下载
  • 网站是数据网上企业管理系统免费版
  • 怎么利用招聘网站做薪酬调查重庆短视频行业
  • 网站数据做面板分析网站注册地查询
  • 网站 设计风格wordpress改造mip
  • 网站改版 英文电子商务战略选择 网站建设建议
  • 网站查询平台官网免费编程软件小学生
  • 为什么要建设商城网站网站风格趋势
  • 企业手机版网站常州制作网站软件
  • 可以免费商用国外印花图案设计网站做网站用dw还是vs
  • 自己做一个网站要多少钱网络公司微信开发
  • 深圳网站设计公司排名榜湛江企业网站建设公司
  • 网络公司给我做网站我有没有源代码版权吗能联系做仿瓷的网站
  • 如何做网站设计设计云
  • 桌面网站怎么做网站建设服务费账务处理
  • 360官方网站网址paypal网站做外贸
  • 怎样克隆别人的网站建设银行网站怎么登陆密码
  • 关于网站建设的网站有哪些做产地证网站
  • 保定网站排名优化做一个网站得做多少个页面