溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

struts2攔截器修改request的parameters參數(shù)失敗怎么解決

發(fā)布時間:2022-03-07 15:08:38 來源:億速云 閱讀:201 作者:iii 欄目:開發(fā)技術(shù)

本文小編為大家詳細(xì)介紹“struts2攔截器修改request的parameters參數(shù)失敗怎么解決”,內(nèi)容詳細(xì),步驟清晰,細(xì)節(jié)處理妥當(dāng),希望這篇“struts2攔截器修改request的parameters參數(shù)失敗怎么解決”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學(xué)習(xí)新知識吧。

struts2 攔截器修改request的parameters參數(shù)失敗

為了解決struts2的xss(跨站腳本攻擊)問題,我打算用struts2自帶的攔截器來過濾所有由request傳遞來的參數(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(此處填寫攔截器對應(yīng)的類)"></interceptor>
            <!-- 定義一個包含xss攔截的攔截棧 -->
            <interceptor-stack name="myDefault">
                <interceptor-ref name="xssInterceptor"></interceptor-ref>
                <interceptor-ref name="defaultStack"></interceptor-ref>
            </interceptor-stack>
        </interceptors>
        <!-- 這個必須配置,否則攔截器不生效 -->
        <default-interceptor-ref name="myDefault"></default-interceptor-ref>
    </package>
</struts>

一開始我配置的攔截棧是這樣的

<interceptor-stack name="myDefault">
        <interceptor-ref name="defaultStack"></interceptor-ref>
        <interceptor-ref name="xssInterceptor"</interceptor-ref>
</interceptor-stack>

發(fā)現(xiàn)我執(zhí)行過濾的那個類被執(zhí)行了,但是action中注入的值沒有更改

只需要把順序換一下就好了。

修改指定攔截器的參數(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"/>

讀到這里,這篇“struts2攔截器修改request的parameters參數(shù)失敗怎么解決”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識點(diǎn)還需要大家自己動手實(shí)踐使用過才能領(lǐng)會,如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI