亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁(yè) > 編程 > JSP > 正文

JSP spring boot / cloud 使用filter防止XSS

2024-09-05 00:23:06
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

JSP spring boot / cloud 使用filter防止XSS

一.前言

XSS(跨站腳本攻擊)

跨站腳本攻擊(Cross Site Scripting),為不和層疊樣式表(Cascading Style Sheets, CSS)的縮寫混淆,故將跨站腳本攻擊縮寫為XSS。惡意攻擊者往Web頁(yè)面里插入惡意Script代碼,當(dāng)用戶瀏覽該頁(yè)之時(shí),嵌入其中Web里面的Script代碼會(huì)被執(zhí)行,從而達(dá)到惡意攻擊用戶的目的。

二.思路

基于filter攔截,將特殊字符替換為html轉(zhuǎn)意字符 (如: "<" 轉(zhuǎn)意為 "<") , 需要攔截的點(diǎn)如下:

  • 請(qǐng)求頭 requestHeader
  • 請(qǐng)求體 requestBody
  • 請(qǐng)求參數(shù) requestParameter

三.實(shí)現(xiàn)

1.創(chuàng)建XssHttpServletRequestWrapper類

在獲取請(qǐng)求頭,請(qǐng)求參數(shù)的這些地方,將目標(biāo)值使用HtmlUtils.htmlEscape方法轉(zhuǎn)意為html字符,而避免惡意代碼參與到后續(xù)的流程中

/** * XssHttpServletRequestWrapper.java * Created at 2016-09-19 * Created by wangkang * Copyright (C) 2016 egridcloud.com, All rights reserved. */package com.egridcloud.udf.core.xss;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletRequestWrapper;import org.springframework.web.util.HtmlUtils;/** * 描述 : 跨站請(qǐng)求防范 * * @author wangkang * */public class XssHttpServletRequestWrapper extends HttpServletRequestWrapper { /**  * 描述 : 構(gòu)造函數(shù)  *  * @param request 請(qǐng)求對(duì)象  */ public XssHttpServletRequestWrapper(HttpServletRequest request) {  super(request); } @Override public String getHeader(String name) {  String value = super.getHeader(name);  return HtmlUtils.htmlEscape(value); } @Override public String getParameter(String name) {  String value = super.getParameter(name);  return HtmlUtils.htmlEscape(value); } @Override public String[] getParameterValues(String name) {  String[] values = super.getParameterValues(name);  if (values != null) {   int length = values.length;   String[] escapseValues = new String[length];   for (int i = 0; i < length; i++) {    escapseValues[i] = HtmlUtils.htmlEscape(values[i]);   }   return escapseValues;  }  return super.getParameterValues(name); }}

2.創(chuàng)建XssStringJsonSerializer類

其次是涉及到j(luò)son轉(zhuǎn)換的地方,也一樣需要進(jìn)行轉(zhuǎn)意,比如,rerquestBody,responseBody

/** * XssStringJsonSerializer.java * Created at 2016-09-19 * Created by wangkang * Copyright (C) 2016 egridcloud.com, All rights reserved. */package com.egridcloud.udf.core.xss;import java.io.IOException;import org.springframework.web.util.HtmlUtils;import com.fasterxml.jackson.core.JsonGenerator;import com.fasterxml.jackson.databind.JsonSerializer;import com.fasterxml.jackson.databind.SerializerProvider;/** * 描述 : 基于xss的JsonSerializer * * @author wangkang * */public class XssStringJsonSerializer extends JsonSerializer<String> { @Override public Class<String> handledType() {  return String.class; } @Override public void serialize(String value, JsonGenerator jsonGenerator,   SerializerProvider serializerProvider) throws IOException {  if (value != null) {   String encodedValue = HtmlUtils.htmlEscape(value);   jsonGenerator.writeString(encodedValue);  } }}

3.創(chuàng)建Bean

在啟動(dòng)類中,創(chuàng)建XssObjectMapper的bean,替換spring boot原有的實(shí)例,用于整個(gè)系統(tǒng)的json轉(zhuǎn)換.

 /**  * 描述 : xssObjectMapper  *  * @param builder builder  * @return xssObjectMapper  */ @Bean @Primary public ObjectMapper xssObjectMapper(Jackson2ObjectMapperBuilder builder) {  //解析器  ObjectMapper objectMapper = builder.createXmlMapper(false).build();  //注冊(cè)xss解析器  SimpleModule xssModule = new SimpleModule("XssStringJsonSerializer");  xssModule.addSerializer(new XssStringJsonSerializer());  objectMapper.registerModule(xssModule);  //返回  return objectMapper; }

4.創(chuàng)建XssFilter

首先是攔截所有的請(qǐng)求,然后在doFilter方法中,將HttpServletRequest強(qiáng)制類型轉(zhuǎn)換成XssHttpServletRequestWrapper

然后傳遞下去.

/** * XssFilter.java * Created at 2016-09-19 * Created by wangkang * Copyright (C) 2016 egridcloud.com, All rights reserved. */package com.egridcloud.udf.core.xss;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.annotation.WebFilter;import javax.servlet.http.HttpServletRequest;import org.slf4j.Logger;import org.slf4j.LoggerFactory;/** * 描述 : 跨站請(qǐng)求防范 * * @author wangkang * */@WebFilter(filterName = "xssFilter", urlPatterns = "/*", asyncSupported = true)public class XssFilter implements Filter { /**  * 描述 : 日志  */ private static final Logger LOGGER = LoggerFactory.getLogger(XssFilter.class); @Override public void init(FilterConfig filterConfig) throws ServletException {  LOGGER.debug("(XssFilter) initialize"); } @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)   throws IOException, ServletException {  XssHttpServletRequestWrapper xssRequest =    new XssHttpServletRequestWrapper((HttpServletRequest) request);  chain.doFilter(xssRequest, response); } @Override public void destroy() {  LOGGER.debug("(XssFilter) destroy"); }}

四.結(jié)束

本文雖基于spring boot實(shí)現(xiàn)主題,但是思路是一致的,不限于任何框架.

 感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到JSP教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
国产精品天堂蜜av在线播放| 国产精品伦理一区二区三区| 欧美另类极品videosbest视| 激情视频网站在线播放色| 久久久99999| 欧美一区二区三区电影在线观看| 国产精品无人区| 国产欧美一区二区三区视频| 成人av资源网站| 日韩专区在线| 97偷自拍亚洲综合二区| av电影在线不卡| 精品久久久久久中文字幕动漫| 国产国语**毛片高清视频| 亚洲人成网站精品片在线观看| 国产综合色香蕉精品| porn视频在线观看| 色啪啪.com| 欧美日韩一卡二卡三卡| 国产又黄又粗又猛又爽的| 欧美日韩高清在线一区| 久久精品综合一区| 成人禁在线观看网站| 国产免费不卡视频| 国产视频一二三区| 亚洲区第一页| 成人在线观看毛片| 国产人妻精品一区二区三区不卡| 亚洲午夜精品久久久久久性色| 黄色av片三级三级三级免费看| 激情综合一区二区三区| 国产精品毛片大码女人| 欧美性猛交xxxx| 91精品久久久久久久久久久| 先锋影音网一区二区| 老司机成人在线| 一级全黄裸体免费视频| 97涩涩爰在线观看亚洲| 国产精品第七十二页| 成年人精品视频| 中文日韩电影网站| 青青操在线观看视频| 国产igao激情在线入口| 久久精品国产精品亚洲综合| 国产精品加勒比| av麻豆国产| www黄色在线观看视频| 99久久精品免费| 日韩二区三区在线观看| 国产无遮挡猛进猛出免费软件| 久久久久久国产| 无码国产精品一区二区免费16| 国产系列电影在线播放网址| 国产女人aaa级久久久级| www.中文字幕.com| 黄页网站大全在线免费观看| 一本色道久久88亚洲综合88| 国产传媒一区二区三区| 黄色一级视频片| www.国产视频| 美女脱光内衣内裤视频久久影院| 欧美特级xxxxbbbb毛片| 亚洲一区国产精品| 亚洲毛片视频| 91麻豆精品久久久久蜜臀| 午夜黄色一级片| 天天草天天草| 国产欧美一级片| 国产精品福利一区| 欧美成人欧美edvon| 精品在线91| 亚洲精品成人一区| 精品一区二区三孕妇视频| 亚洲三级网页| 亚洲免费观看高清完整版在线观看| 91一区二区视频| 在线观看视频免费| 欧洲vodafone精品| segui88久久综合9999| 678五月天丁香亚洲综合网| 欧美精品第一页| 久99久视频| 不卡中文字幕在线| 欧美一级bbbbb性bbbb喷潮片| 伊人久久综合影院| www.色婷婷| 国产精品日本一区二区| 日韩精品一区二区三区在线视频| 亚洲黄色精品视频| 精品久久久久久电影| 中文字幕乱码人妻无码久久| 欧美日一区二区在线观看| 亚洲成人久久影院| 在线观看免费视频高清游戏推荐| 91成人入口| 久久久久久久久久久久久久一区| 免费观看的黄色网址| 国产精品视频久久久久久| 亚洲视频1区| 欧美一区二区三区激情| 欧美性天天影院| 91久久人澡人人添人人爽欧美| 日韩免费福利视频| 色婷婷av国产精品| 国产精品九九久久久久久久| 国产美女扒开尿口久久久| 秋霞a级毛片在线看| 成年人深夜福利| 超碰精品一区二区三区乱码| 成人黄色片视频网站| 亚洲欧美视频在线| 亚洲区综合中文字幕日日| 91美女片黄在线观| palipali轻量版永久网页入口| 在线观看日韩精品| www.av一区视频| 国产露脸国语对白在线| 丁香资源影视免费观看| 日韩精品视频在线观看免费| 欧美日韩精品电影| 日韩欧美在线影院| 精品动漫av| eeuss影院www影院| 日韩国产成人无码av毛片| 北条麻妃av毛片免费观看| 另类亚洲自拍| 欧美大胆成人| av在线免费在线观看| 久久久亚洲欧洲日产国码aⅴ| 色综合五月天导航| a视频在线播放| 色噜噜狠狠一区二区| 六月丁香婷婷在线| 午夜电影久久久| 国产三级一区二区| 在线天堂中文www视软件| 少妇精品久久久一区二区| 成人av网站免费观看| 7878成人国产在线观看| 久久久久久久久久久久91| 国产女人伦码一区二区三区不卡| 亚洲美女精品成人在线视频| 丁香六月婷婷| 欧美一区二区性放荡片| 欧美视频二区36p| 国产97在线亚洲| 毛片基地网站| japanese在线播放| 日批视频在线看| 成人av在线观| 欧美一区二区影院| 视频一区视频二区中文字幕| 久久五月天综合| 黄色网页在线播放| 午夜看片在线免费| 色婷婷av一区| 美女在线不卡| 啦啦啦啦免费高清视频在线观看1| 人妻av一区二区三区| a√在线中文网新版址在线| 天堂成人娱乐在线视频免费播放网站| 精品一区二区三区的国产在线观看| 国产三级在线观看视频| 日本成人a网站| 毛片在线看网站| 成人丝袜18视频在线观看| 一区二区三区高清在线观看| 综合欧美视频一区二区三区| 国产午夜精品美女视频明星a级| 欧洲日本不卡| 亚洲大全视频| 无码人妻精品一区二区| 欧美激情在线视频二区| 亚洲国产日韩欧美| 欧美黄色精品| 中文字幕制服诱惑| 亚洲综合123| 99久久国产综合精品女不卡| 国产成人在线免费观看视频| 国产精品电影| 精品国产欧美日韩不卡在线观看| 国产精品久久久爽爽爽麻豆色哟哟| 欧美日韩在线看片| 国产精品久久在线| ga∨成人网| 美国十次综合久久| 国产喷水在线观看| 久久在线观看免费| 日韩一级电影| 日本一区高清在线视频| 国产福利在线免费观看| 免费看又黄又无码的网站| 999亚洲国产精| 欧美日韩亚洲不卡| 精品久久久无码中文字幕| 黑鬼狂亚洲人videos| 精品欧美日韩在线| 日本在线www| av网站免费在线看| 夜夜未满十八勿进的爽爽影视| 日本黄在线观看| 五月天激情丁香| 日本一区二区三区在线观看| 国产午夜精品一区理论片| 国产精品美女久久久久久久久| av日韩一区| 欧美 日韩 激情| 天海翼在线视频| 成人精品免费网站| www色啪啪| 99精品在线视频观看| 国产精品白浆视频免费观看| 美脚恋feet久草欧美| 中文字幕自拍偷拍| 午夜日韩视频| 中文字幕在线播放网址| 欧美一级特黄高清视频| 精品国产不卡一区二区三区| 国产成人精品免高潮在线观看| 欧美日韩一区二区三区四区五区六区| 国产精品麻豆一区二区| 国产精品资源站| 亚洲精品动漫久久久久| 伊是香蕉大人久久| 成色在线视频| av在线亚洲天堂| 欧美午夜aaaaaa免费视频| www.四虎网站| 欧美 日韩 国产 一区二区三区| 国产曰肥老太婆无遮挡| 国产欧美1区2区3区| 欧美男女视频| 日韩网站在线免费观看| 无码人妻丰满熟妇区毛片蜜桃精品| 曰批又黄又爽免费视频| 中文字幕在线看精品乱码| 激情小说亚洲色图| 精品国产亚洲在线| 最新福利小视频在线播放| 九一国产精品视频| 麻豆一区在线观看| 国产精品国产三级国产aⅴ入口| 欧美日韩亚洲国产成人| av中字幕久久| 偷拍欧美精品| 国模无码视频一区二区三区| 国产二级c片l毛片| 92看片淫黄大片看国产片| 日本一区二区三区四区五区| 成人污网站在线观看| 欧美日韩一二三四五区| 国产欧美va欧美va香蕉在线| 一区在线观看免费| 自拍亚洲一区| 国产精品免费麻豆入口| 999精品视频在线| 国产热re99久久6国产精品| 亚洲国产高清一区二区三区| 国产亚洲亚洲| 一区二区成人精品| 中文字幕佐山爱一区二区免费| jizz中文字幕| 黄色的网站在线观看| 99精品999| 91系列在线观看| 国产不卡在线观看视频| 91在线看国产| 日本精品视频| 国产伦精品一区二区三区高清版禁| 午夜av电影一区| 亚欧美一区二区三区| 精品亚洲porn| 日韩中文字幕a| 国产有码在线观看| the porn av| 国产一级理论片| 夜夜爽av福利精品导航| www视频在线观看免费| 中文字幕在线观看二区| 午夜国产精品视频免费体验区| 91在线看网站| 成人a在线观看| 欧美日韩色视频| 国产精品卡一卡二| 日韩精品第一页| 精品网站999| 色婷婷av一区二区三区丝袜美腿| 亲子伦视频一区二区三区| 免费国产羞羞网站美图| 午夜剧场在线免费观看| 欧美精品三级日韩久久| 西西444www无码大胆| 国产亚洲一区二区手机在线观看| 日韩妆和欧美的一区二区| 久久精品免费一区二区三区| 97高清免费视频| 咪咪网在线视频| 国模大尺度私拍在线视频| 91色|porny| 91片黄在线观看| 极品在线视频| 国产精品扒开腿做爽爽| 国产freexxxx性播放麻豆| 日韩专区视频| 欧美无砖专区一中文字| 久久久九九九九| 成人国产精选| 中文字幕一区二区三区电影| 大桥未久av一区二区三区中文| 欧美激情久久久久| 在线观看国产免费视频| 久久理论电影网| 亚洲精品亚洲人成人网在线播放| 亚洲精品视频区| 国产又黄又大又粗视频| 日本a视频在线观看| 公侵犯人妻一区二区三区| 国产亚洲视频一区| 亚洲图片你懂的| 人人狠狠综合久久亚洲婷婷| 麻豆免费版在线观看| 中文字幕免费国产精品| 成人午夜在线免费| 精品国产一区二区三区四区在线观看| 国产主播精品在线| 天堂av中文在线资源库| 国产精品1区2区3区在线观看| 国产精品伦理一区|