日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

java实现 XSS攻击防护

發(fā)布時間:2025/3/12 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java实现 XSS攻击防护 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

首先說一下什么是XSS攻擊

XSS攻擊全稱跨站腳本攻擊,是為不和層疊樣式表(Cascading Style Sheets, CSS)的縮寫混淆,
故將跨站腳本攻擊縮寫為XSS,XSS是一種在web應(yīng)用中的計算機安全漏洞,它允許惡意web
用戶將代碼植入到提供給其它用戶使用的頁面中。

白話解釋

說白了xss攻擊就是jq或html代碼攻擊,用戶提交的數(shù)據(jù)是jq或html代碼,
前臺拿到數(shù)據(jù)庫中查出的jq或html代碼,瀏覽器會直接解析執(zhí)行

實現(xiàn)思路

重寫request.getParamter()方法,在controller獲取參數(shù)之前進行jq代碼轉(zhuǎn)換,也就是將
<Script>所有標簽代碼進行替換,在這里要注意,HttpServletRequest是個接口,
它的實現(xiàn)類是HttpServletRequestWrapper,所以只需要繼承HttpServletRequestWrapper,
重寫request.getParamter方法,在通過過濾器將原本的HttpServeltRequest替換為自定義的HttpServeltRequest

代碼

1.自定義類繼承HttpServletRequestWrapper重寫getParamter

import org.apache.commons.lang.StringEscapeUtils; import org.apache.commons.lang.StringUtils;import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequestWrapper;public class XssHttpServletRequestWrapper extends HttpServletRequestWrapper {public XssHttpServletRequestWrapper(HttpServletRequest request) {super(request);}@Overridepublic String getParameter(String name) {String parameter = super.getParameter(name);if(StringUtils.isNotBlank(parameter)){//這里使用的阿帕奇的common-lang3中的轉(zhuǎn)義html方法,也可以自己實現(xiàn),String escapeParameter = StringEscapeUtils.escapeHtml(parameter);System.out.println(escapeParameter);return escapeParameter;}return null;} }

2.自定義過濾器,使用自定義的HttpServletRequest

import org.springframework.core.annotation.Order; import org.springframework.stereotype.Component;import javax.servlet.*; import javax.servlet.annotation.WebFilter; import javax.servlet.http.HttpServletRequest; import java.io.IOException;@Component @WebFilter(urlPatterns = {"/*"},filterName = "xssFilter") public class XssFilter implements Filter{@Overridepublic void init(FilterConfig filterConfig) throws ServletException {}@Overridepublic void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {XssHttpServletRequestWrapper req=new XssHttpServletRequestWrapper((HttpServletRequest)request);chain.doFilter(req,response);}@Overridepublic void destroy() {} }

總結(jié)

以上是生活随笔為你收集整理的java实现 XSS攻击防护的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。