1. 程式人生 > >java防止跨站點XSS攻擊的方法

java防止跨站點XSS攻擊的方法

com.frameworkset.common.filter.CharsetEncodingFilter

CharsetEncodingFilter是不具備防止跨站攻擊功能的,但是為其增加兩個init-param引數後就可以了:

    wallfilterrules 指定黑名單單詞表,以逗號分隔多個單詞,只要在引數值中出現其中的一個單詞,引數值就會被置為null(即引數被過濾掉)
   wallwhilelist  指定不會被黑名單檢測的引數的名稱清單,多個引數以逗號分隔,白名單中的引數安全性需要應用程式自己控制,對值中出現的非法字元需要進行相應的處理後再輸出到客服端(比如,針對瀏覽器的轉義處理等措施) 

<filter>  
        <filter-name>CharsetEncoding</filter-name>  
        <filter-class>com.frameworkset.common.filter.CharsetEncodingFilter</filter-class>  
        <init-param>  
          <param-name>RequestEncoding</param-name>  
          <param-value>UTF-8</param-value>  
        </init-param>  
        <init-param>  
          <param-name>ResponseEncoding</param-name>  
          <param-value>UTF-8</param-value>  
        </init-param>  
        <init-param>  
          <param-name>mode</param-name>  
          <param-value>0</param-value>  
        </init-param>    
        <init-param>  
          <param-name>checkiemodeldialog</param-name>  
          <param-value>true</param-value>  
        </init-param>  
          
        <init-param>  
          <param-name>wallfilterrules</param-name>  
          <param-value><![CDATA[><,%3E%3C,<iframe,%3Ciframe,<script,%3Cscript,<img,%3Cimg,alert(,alert%28,eval(,eval%28,style=,style%3D]]>  
          </param-value>            
        </init-param>  
          
        <init-param>  
          <param-name>wallwhilelist</param-name>  
          <param-value><![CDATA[content,fileContent]]>  
          </param-value>
        </init-param>  
          
    </filter>