2016-02-02 84 views
0

對於此代碼:如何使用esapi驗證hashmap?

HashMap temphashMap = session.getAttribute("abc"); 

我如何可以驗證的HashMap反對使用ESAPI的跨站點腳本漏洞?

+0

目前還不清楚你在問什麼。 「驗證」是什麼意思? –

+0

我需要根據跨站腳本漏洞驗證Hashmap/Collection,這是一種安全漏洞。 – ManthanB

回答

0

你不能這樣做。爲了進行驗證,您必須事先知道該HashMap中每個項目的特殊規則和數據流。

如何判斷應用程序中的某個表單域是否爲一個富文本字段,就像我用來輸入此答案的域?如果一些HTML標籤是合法的呢?

你無法知道這一點。

這就是爲什麼確保數據正確編碼爲以確保正確的上下文的100倍。

爲此,您將使用ESAPI.encoder()類中的方法。

最接近你要求的是建立一個servlet過濾器,然後在每個請求/響應對上,然後使用像AntiSamy這樣的XSS過濾器來允許某些標記進入和禁止其他標記。但是,對於HTML屬性,HTML標記文本或<textarea>塊中使用的值,規則是不同的。您必須寫出相當多的邏輯,才能避免將所有數據轉交給其他解釋器之前避免的所有數據。