解決struts2 攔截器修改request的parameters參數(shù)失敗的問(wèn)題
struts2 攔截器修改request的parameters參數(shù)失敗
為了解決struts2的xss(跨站腳本攻擊)問(wèn)題,我打算用struts2自帶的攔截器來(lái)過(guò)濾所有由request傳遞來(lái)的參數(shù)。
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"> <struts> ? ? <!-- 配置一系列常量,非必須 --> ? ? <constant name="struts.i18n.encoding" value="UTF-8"/> ? ? <!-- constant name="struts.devMode" value="true"/ --> ? ? <constant name="struts.enable.DynamicMethodInvocation" value="false"/> ? ? <constant name="struts.objectFactory.spring.autoWire" value="auto"></constant> ? ? <constant name="struts.multipart.saveDir" value="/tmp"/> ? ? <package name="default" namespace="/" ? ? ? ? extends="struts-default, json-default"> ? ? ? ? <!-- 配置攔截器 --> ? ? ? ? <interceptors> ? ? ? ? ? ? <!-- 定義xss攔截器 --> ? ? ? ? ? ? <interceptor name="xssInterceptor" class="xx.xx.xx(此處填寫(xiě)攔截器對(duì)應(yīng)的類)"></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> ? ? </package> </struts> ? ?
一開(kāi)始我配置的攔截棧是這樣的
<interceptor-stack name="myDefault"> ? ? ? ? <interceptor-ref name="defaultStack"></interceptor-ref> ? ? ? ? <interceptor-ref name="xssInterceptor"</interceptor-ref> </interceptor-stack>
發(fā)現(xiàn)我執(zhí)行過(guò)濾的那個(gè)類被執(zhí)行了,但是action中注入的值沒(méi)有更改
只需要把順序換一下就好了。
修改指定攔截器的參數(shù)(Struts2)
<!-- 修改prepareInterceptor的alwaysInvokePrepare屬性值為false --> ? ? ?<interceptors> ? ? ? ? <interceptor-stack name="atzhu">//自定義的攔截器棧名。 ? ? ? ? ? ?<interceptor-ref name="paramsPrepareParamsStack"> ? ? ? ? ? ? ?<param name="prepare.alwaysInvokePrepare">false</param> ? ? ? ? ? ?</interceptor-ref> ? ? ? ? </interceptor-stack> ? ? ?</interceptors> ? ? ?<default-interceptor-ref name="atzhu"/>
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
springboot手動(dòng)事務(wù)回滾的實(shí)現(xiàn)代碼
這篇文章主要介紹了springboot手動(dòng)事務(wù)回滾的實(shí)現(xiàn)方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07
提升java開(kāi)發(fā)效率工具lombok使用爭(zhēng)議
這篇文章主要介紹了提升java開(kāi)發(fā)效率工具lombok使用爭(zhēng)議到底該不該使用的分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-07-07
RocketMQ?Broker實(shí)現(xiàn)高可用高并發(fā)的消息中轉(zhuǎn)服務(wù)
RocketMQ消息代理(Broker)是一種高可用、高并發(fā)的消息中轉(zhuǎn)服務(wù),能夠接收并存儲(chǔ)生產(chǎn)者發(fā)送的消息,并將消息發(fā)送給消費(fèi)者。它具有多種消息存儲(chǔ)模式和消息傳遞模式,支持水平擴(kuò)展和故障轉(zhuǎn)移等特性,可以為分布式應(yīng)用提供可靠的消息傳遞服務(wù)2023-04-04
JavaWeb中HttpSession中表單的重復(fù)提交示例
這篇文章主要介紹了JavaWeb中HttpSession中表單的重復(fù)提交,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-03-03
淺談緩沖字符流 BufferedReader BufferedWriter用法
這篇文章主要介紹了緩沖字符流 BufferedReader BufferedWriter的用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07
使用Springboot根據(jù)配置文件動(dòng)態(tài)注入接口實(shí)現(xiàn)類
這篇文章主要介紹了使用Springboot根據(jù)配置文件動(dòng)態(tài)注入接口實(shí)現(xiàn)類,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08
Spring Boot 排除某個(gè)類加載注入IOC的操作
這篇文章主要介紹了Spring Boot 排除某個(gè)類加載注入IOC的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08
強(qiáng)烈推薦MyBatis?三種批量插入方式的比較
這篇文章主要介紹了強(qiáng)烈推薦MyBatis?三種批量插入方式的比較,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-07-07

