一般來說,系統進行表單資料處理時都需要解決類似xss攻擊以及轉義這樣的問題,這樣的問題具有普遍性,不可能在每個提交表單資料的處理中都加入重複的處理**。通常通過 filter 或 interceptor 來攔截處理。
這裡介紹下通過 filter 進行xss過濾的方法。
流程:使用filter攔截請求,將普通請求轉化為包裝過的可以處理xss的自定義請求,之後獲取引數時都會經過xss處理。
xssfilter
public
class
xssfilter
implements
filter
;@override
public
void
dofilter
(servletrequest request, servletresponse response, filterchain chain)
throws ioexception, servletexception
} chain.
dofilter
(newrequest, response);}
@override
public
void
init
(filterconfig filterconfig)
@override
public
void
destroy()
}
/**
* xss 通過重寫引數獲取方法實現.
*/public
class
extends
@override
public string getparameter
(string name)
return value;
}@override
public string[
]getparametervalues
(string name)
}return values;
}@override
public string getheader
(string name)
return value;
}private string xssreplace
(string value)
else
return reslut;
}}
使用filter進行文字替換
問題描述 filter的使用很簡便,如下示例為檔案拷貝過程中進行文字替換。可以很簡便的設定begintoken及endtoken來定義要被替換的文字的前後定界符,預設為 可以自定義其他定界符。然而,當我們的文字中沒有!等特殊符號時該怎麼辦呢,如下面的oldfile.txt.fowjow was ho...
使用Filter進行 過濾非法登入使用者
很多時候,我們都需要做使用者登入和登入使用者的許可權管理,如何防止沒登入系統的使用者訪問不該訪問的頁面呢?第一種解決辦法,在沒個使用者登入相關的頁面中判定相應的session是否為空,系統比較小該方法還可行?系統比較大呢?上千個頁面呢?難道也要在每個頁面中去判斷嗎?這或許不太可取 第二種,引入fil...
Spring 4 x使用Junit4進行單元測試
最近公司使用spring框架開發,以前用的不多,開始使用了之後,想寫個單元測試來測試一下功能,於是乎從網上找了一下測試的例子,看到最多的就是使用 runwith springjunit4classrunner.class contextconfiguration locations 這種型別的,需要...