2015-04-01 126 views
0

我正在嘗試創建一個servlet請求篩選器,它根據白名單字符篩選所有傳入請求。http請求的白名單驗證

我只想接受那些與白名單模式相匹配的字符,以避免任何惡意代碼被攻擊者以腳本或修改後的URL的形式執行。

有誰知道應該使用哪個白名單字符來過濾任何HTTP請求字符串?

任何幫助,將不勝感激提前

回答

0

實現模式匹配的機制,通過使用正則表達式來找到您的網址白名單模式字符..

感謝

關注這個link1

或者您可以嘗試:

if (inputUrl.contains(whiteList)) { 
    // your code goes here 
} 

或者如果你需要知道它在哪裏發生,你可以使用的indexOf:

int index = inputUrl.indexOf(whiteList); 
if (index != -1) // -1 means "not found" 
{ 
    ... 
} 

感謝,

〜CHANDAN

+0

謝謝Chandan的回覆...正則表達式可以用來生成正則表達式,因爲我是一個新手,我不知道哪些字符應該用於白名單驗證.... – androidDev 2015-04-01 12:09:15

+0

〜歡迎androidDev,你可以給一個關於你的白名單的想法(你想要什麼樣的模式,規則) – 2015-04-01 12:54:45

+0

我正在使用struts框架,我想驗證每個傳入的請求在URL中,所以我正在尋找一個正則表達式,我可以使用它來進行url的白名單驗證。 – androidDev 2015-04-01 17:53:42

0

的問題是,「惡意「是非常廣泛的術語。你應該清楚自己想要保護什麼類型的攻擊,然後採取措施來防止這種攻擊。

您不能指定一組需要過濾的字符集,您需要知道將使用您在url中的輸入的域。通常危險的不是網址本身,而是由用戶提供並由應用程序解釋的url參數。根據您的應用程序如何使用此輸入,您需要採取特定的預防措施。例如:

  1. Url param用於確定重定向的目標。用戶可以使用此功能將受害者導航到惡意網站,該網站掩蓋爲您的網站,但會竊取用戶提供虛假憑證的憑證等。在這種情況下,您應該構建您的應用程序預期允許的目標白名單並禁止其他人訪問。請參閱OWASP top TEN - Unvalidated redirects and forwards
  2. 將網址參數中的數據保存到數據庫。您應該通過使用參數化查詢來防止SQL注入。 See OWASP SQL injection Cherat Sheet,
  3. Url參數數據將顯示爲html。您應該通過一些已經驗證過的消毒劑(如OWASP html sanitizerAntiSamy)來清理您的html,以防止Cross Site Scripting

等等......

的一點是,沒有銀彈,以保護您免受所有惡意攻擊媒介尤其不要在Servlet過濾器白名單某些字符。您應該知道潛在的惡意數據在哪裏使用並根據其具體用途進行處理,因爲不同的目標將具有不同的漏洞,並且需要不同的保護措施。

安全問題和措施的高級概述的良好開端形成對它們的保護是OWASP TOP TEN。然後我推薦一些由owasp提供的更詳細的指南和資源。