1. 程式人生 > >Java Filter過濾xss注入非法引數的方法

Java Filter過濾xss注入非法引數的方法

http://blog.csdn.net/feng_an_qi/article/details/45666813

web.xml:

  1. <filter>
  2.        <filter-name>XSSFiler</filter-name>
  3.        <filter-class>
  4.            com.paic.mall.web.filter.XssSecurityFilter  
  5.        </filter-class>
  6.     </filter>
  7.     <filter-mapping
    >
  8.         <filter-name>XSSFiler</filter-name>
  9.         <url-pattern>*.jsp</url-pattern>
  10.     </filter-mapping>
  11.     <filter-mapping>
  12.         <filter-name>XSSFiler</filter-name>
  13.         <url-pattern>*.do</url-pattern>
  14.     </filter-mapping
    >
  15.     <filter-mapping>
  16.         <filter-name>XSSFiler</filter-name>
  17.         <url-pattern>*.screen</url-pattern>
  18.     </filter-mapping>
  19.     <filter-mapping>
  20.         <filter-name>XSSFiler</filter-name>
  21.         <url-pattern>*.shtml</url-pattern
    >
  22.     </filter-mapping>
  23.     <filter-mapping>
  24.         <filter-name>XSSFiler</filter-name>
  25.         <servlet-name>dispatcher</servlet-name>
  26.     </filter-mapping>

XssSecurityFilter.Java

  1. publicclass XssSecurityFilter implements Filter {  
  2.     protectedfinal Logger log = Logger.getLogger(this.getClass());  
  3.     publicvoid init(FilterConfig config) throws ServletException {  
  4.         if(log.isInfoEnabled()){  
  5.             log.info("XSSSecurityFilter Initializing ");  
  6.         }  
  7.     }  
  8.     /** 
  9.      * 銷燬操作 
  10.      */
  11.     publicvoid destroy() {  
  12.         if(log.isInfoEnabled()){  
  13.             log.info("XSSSecurityFilter destroy() end");  
  14.         }  
  15.     }  
  16.     publicvoid doFilter(ServletRequest request, ServletResponse response,  
  17.             FilterChain chain) throws IOException, ServletException {  
  18.         HttpServletRequest httpRequest = (HttpServletRequest)request;  
  19.         XssHttpRequestWrapper xssRequest = new XssHttpRequestWrapper(httpRequest);  
  20.         httpRequest = XssSecurityManager.wrapRequest(xssRequest);  
  21.         chain.doFilter(xssRequest, response);  
  22.     }  
  23. }  

XssHttpRequestWrapper.java

  1. /** 
  2.  * @author  
  3.  * @date 
  4.  * @describe 主要是對引數進行xss過濾,替換原始的request的getParameter相關功能 
  5.  *      執行緒不安全 
  6.  *  
  7.  */
  8. publicclass XssHttpRequestWrapper extends HttpServletRequestWrapper {  
  9.     protected Map parameters;  
  10.     /** 
  11.      * 封裝http請求 
  12.      *  
  13.      * @param request 
  14.      */
  15.     public XssHttpRequestWrapper(HttpServletRequest request) {  
  16.         super(request);  
  17.     }  
  18.     @Override
  19.     publicvoid setCharacterEncoding(String enc)  
  20.             throws UnsupportedEncodingException {  
  21.         super.setCharacterEncoding(enc);  
  22.         //當編碼重新設定時,重新載入重新過濾快取。
  23.         refiltParams();  
  24.     }  
  25.     void refiltParams(){  
  26.         parameters=null;  
  27.     }  
  28.     @Override
  29.     public String getParameter(String string) {  
  30.         String strList[] = getParameterValues(string);  
  31.         if (strList != null && strList.length > 0)  
  32.             return strList[0];  
  33.         else
  34.             returnnull;  
  35. 相關推薦

    Java Filter過濾xss注入非法引數方法

    http://blog.csdn.net/feng_an_qi/article/details/45666813 web.xml: <filter>        <filter-name>XSSFiler&l

    Java Filter過濾xss註入非法參數的方法

    nbsp rst let efi fin author ssa html 空串 http://blog.csdn.NET/feng_an_qi/article/details/45666813 Java Filter過濾xss註入非法參數的方法 web.xml:

    java介面防止XSS攻擊的常用方法總結

    在前面的一篇文章中,講到了java web應用程式防止 csrf 攻擊的方法,參考這裡 java網頁程式採用 spring 防止 csrf 攻擊. ,但這只是攻擊的一種方式,還有其他方式,比如今天要記錄的 XSS 攻擊, XSS 攻擊的專業解釋,可以在網上搜索一下,參考百度百

    Java不定型別,不定個數引數方法的寫法

    java方法的不定型別與不定個數引數 public void demo(Object … object ){ } 定義多種型別引數用於測試 int age=12; String name=”李

    使用filter過濾xss攻擊

     http://winnie825.iteye.com/blog/1170833 先說一下實現思路: 1. 使用正則表示式的方式實現指令碼過濾,這個方法準確率較高,但是可能根據不能的要求會變動; 2. 為了保證配置靈活(包括正則表示式靈活),使用xml配置檔案的方式記錄配置資訊,配置資訊包含是否開啟

    防止常見XSS 過濾 SQL注入 JAVA過濾器filter

    XSS : 跨站指令碼攻擊(Cross Site Scripting),為不和層疊樣式表(Cascading Style Sheets, CSS)的縮寫混淆,故將跨站指令碼攻擊縮寫為XSS。惡意攻擊者往Web頁面裡插入惡意html程式碼,當用戶瀏覽該頁之時,嵌入其中Web裡

    Java簡單的XSS過濾方法

    Java簡單的XSS過濾方法 因為某甲方程式XSS過濾類一直沒起作用,所以百度了下,簡單的寫了個引數XSS過濾方法。。。。。上程式碼~~ import java.io.UnsupportedEncodingException; import java.net.URLDecod

    AOP實踐--ASP.NET MVC 5使用Filter過濾Action引數防止sql注入,讓你程式碼安全簡潔

    在開發程式的過程中,稍微不注意就會隱含有sql注入的危險。今天我就來說下,ASP.NET mvc 5使用Filter過濾Action引數防止sql注入,讓你程式碼安全簡潔。不用每下地方對引數的值都進行檢查,看是使用者輸入的內容是否有危險的sql。如果沒個地方都要加有幾個缺

    JAVA覆寫Request過濾XSS跨站腳本攻擊

    getpara header term implement nbsp super exceptio stream elements 註:本文非本人原著。 demo的地址:鏈接:http://pan.baidu.com/s/1miEmHMo 密碼:k5ca 如何過濾

    django中models的filter過濾方法

    ont sta 表達 AI 包含 lte isnull ear end __gt 大於__gte 大於等於 __lt 小於 __lte 小於等於 __in 存在於一個list範圍內 __startswith 以...開頭 __ist

    java 防止 XSS 攻擊的常用方法

    javax 編程 cape sap ins servlet space javascrip throws 1. 自己寫 filter 攔截來實現,但要註意的時,在WEB.XML 中配置 filter 的時候,請將這個 filter 放在第一位.2. 采用開源的實現 ESAP

    Java的輸入和輸出、if...else if...else判斷、Java中列印陣列、Java中陣列排序、檢視函式方法的原始碼、命令列引數

    Java的輸入和輸出: 輸入: import java.util.Scanner Scanner s = new Scanner(System.in); //通過new Scanner(System.in)建立一個Scanner物件,控制檯會一直等待輸入,直到敲回車鍵

    java呼叫WebService介面的一種方法引數為XML的字串

    String xmlinfo = "<data>.......</data>";//xml引數 try { String url = "http://******/Server

    vue filter( ) 過濾陣列方法

    要顯示一個數組的過濾或排序副本,而不實際改變或重置原始資料(非變異方法)。可以使用filter( ) 方法。 <div id="div"> <li v-for="n in evenNumbers">{{ n }}</li> <

    使用Filter過濾非法內容

    1、首先,需要編寫一個響應的封裝器ResponseReplaceWrapper,用它來快取response中的內容,程式碼如下: ResponseReplaceWrapper.java package com.comp.common; import java.io.CharArrayWrite

    javaFilter過濾器處理中文亂碼的方法

    注意問題:在學習用selvert的過濾器filter處理中文亂碼時,在filter配置初始化時用了utf-8處理中文亂碼,而在提交的jsp頁面中卻用了gbk。雖然兩種都可以出來中文亂碼,但是卻造成了處理亂碼的格式不一致。所以編譯出錯。 解決方法:所有地方都用ut

    java防止xss注入攻擊

    後面附錄有三個.java文件 1.把文件拷進專案中(最好建立一個單獨的包存放),然後修改引入路徑,看到不報錯那麼第一步完成。 2.開啟web.xml配置檔案 <!--XSS注入攻擊--> <filter> <filter-name&

    穿梭框(filter過濾方法,sort排序 v-model)

    <!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8"> <title>穿梭框</title> <link rel="stylesheet" href="bo

    Java中的不定長引數方法的使用

    不定長引數方法的語法如下: 返回值 方法名(引數型別...引數名稱) 在引數列表中使用“...”形式定義不定長引數,其實這個不定長引數a就是一個數組,編譯器會將(int...a)這種形式看作是(int[] a)的形式。 示例:編寫一個不定長引數方法。 /** * 定義不定長引數

    【101】java的List中使用filter過濾出符合特定條件的元素List

    在實際開發中,經常需要把一個列表中的元素,按照特定條件過濾出來,放到一個新的列表中。本文給出了幾個例子,來描述解決這個問題的方法。 我們假設有一個書的List,需要找出其中id分別是3、6、8、9的書。本文介紹了兩種方法來完成這個工作。第一種方法是使用jav