JSP Struts過(guò)濾xss攻擊的解決辦法
JSP Struts過(guò)濾xss攻擊的解決辦法
本方案采用struts2的攔截器過(guò)濾,將提交上來(lái)的參數(shù)轉(zhuǎn)碼來(lái)解決。
配置struts.xml
<package name="default" namespace="/"
extends="struts-default, json-default">
<!-- 配置攔截器 -->
<interceptors>
<!-- 定義xss攔截器 -->
<interceptor name="xssInterceptor" class="...此處填寫攔截器類名"></interceptor>
<!-- 定義一個(gè)包含xss攔截的攔截棧 -->
<interceptor-stack name="myDefault">
<interceptor-ref name="xssInterceptor"></interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>
</interceptor-stack>
</interceptors>
<!-- 這個(gè)必須配置,否則攔截器不生效 -->
<default-interceptor-ref name="myDefault"></default-interceptor-ref>
<action>
...此處省略n個(gè)action
</action>
</package>
Java代碼,攔截器實(shí)現(xiàn)類
import java.util.Map;
import org.apache.commons.lang3.StringEscapeUtils;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
public class XssInterceptor extends AbstractInterceptor{
@Override
public String intercept(ActionInvocation invocation) throws Exception {
// TODO Auto-generated method stub
ActionContext actionContext = invocation.getInvocationContext();
Map<String, Object> map = actionContext.getParameters();
for (Map.Entry<String, Object> entry : map.entrySet()) {
String value = ((String[])(entry.getValue()))[0];
entry.setValue(StringEscapeUtils.escapeHtml4(value));//將提交上來(lái)的字符串進(jìn)行轉(zhuǎn)碼
//System.out.println((entry.getValue()));
}
return invocation.invoke();
}
}
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
相關(guān)文章
jsp頁(yè)面間傳中文參數(shù)示例(頁(yè)面?zhèn)鲄?shù)編碼)
在url地址欄使用中文傳參數(shù)可能會(huì)是亂碼了,下面我們來(lái)看看正確的jsp中頁(yè)面間傳中文參數(shù)轉(zhuǎn)碼的方法2014-01-01
JSP連接MySql/MS SQL Server/Oracle數(shù)據(jù)庫(kù)連接方法[整理]
這個(gè)經(jīng)常整理更新2008-10-10
用JS實(shí)現(xiàn)購(gòu)物網(wǎng)站商品放大鏡效果
大家?guī)缀醵加性诰W(wǎng)上購(gòu)物的經(jīng)驗(yàn),有的網(wǎng)站會(huì)有一個(gè)商品放大鏡功能,這篇文章主要介紹了用JS實(shí)現(xiàn)購(gòu)物網(wǎng)站商品放大鏡效果,有需要的朋友可以看看。2016-10-10
JSP利用過(guò)濾器解決request中文亂碼問(wèn)題
這篇文章主要介紹了JSP利用過(guò)濾器解決request中文亂碼問(wèn)題,感興趣的小伙伴們可以參考一下2015-12-12
JSP實(shí)現(xiàn)的簡(jiǎn)單分頁(yè)示例
這篇文章主要介紹了JSP實(shí)現(xiàn)的簡(jiǎn)單分頁(yè),涉及jsp簡(jiǎn)單數(shù)據(jù)庫(kù)查找及遍歷實(shí)現(xiàn)分頁(yè)的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-10-10
JAVA/JSP學(xué)習(xí)系列之六(MySQL翻頁(yè)例子)
JAVA/JSP學(xué)習(xí)系列之六(MySQL翻頁(yè)例子)...2006-10-10
JSP向后臺(tái)傳遞參數(shù)的四種方式總結(jié)
下面小編就為大家?guī)?lái)一篇JSP向后臺(tái)傳遞參數(shù)的四種方式總結(jié)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-02-02
Java之JSP教程九大內(nèi)置對(duì)象詳解(上篇)
這篇文章主要介紹了Java之JSP教程九大內(nèi)置對(duì)象詳解(上篇),本文章內(nèi)容詳細(xì),通過(guò)案例可以更好的理解JSP內(nèi)置對(duì)象的相關(guān)知識(shí),本模塊分為了三部分,本次為上篇,講解了三個(gè)內(nèi)容,需要的朋友可以參考下2023-01-01
jsp實(shí)現(xiàn)點(diǎn)擊help打開chm文件
有個(gè)javaweb項(xiàng)目,需要在portal上面點(diǎn)擊help即可打開“幫助.chm”文件,下面與大家分享下jsp如何打開chm文件2014-09-09

