java防止跨站點XSS攻擊的方法
阿新 • • 發佈:2019-02-20
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>