我正在寫一個web應用程序,我接受圖像源作爲url查詢參數。我想驗證圖像源以確保用戶/調用者沒有發送可能導致XSS或類似情況的請求。你能否給我一個驗證圖像src或正則表達式的好方法,它可以確保沒有惡意內容被推送到我的服務器並可能影響最終用戶。正則表達式來驗證圖像源
我能想到以下的圖像源的格式:
- http://foo.com/bar.jpg(絕對)
- /foo/bar.jpg(相對)
- 富/ bar.jpg(相對)
謝謝, Gaurav
我正在寫一個web應用程序,我接受圖像源作爲url查詢參數。我想驗證圖像源以確保用戶/調用者沒有發送可能導致XSS或類似情況的請求。你能否給我一個驗證圖像src或正則表達式的好方法,它可以確保沒有惡意內容被推送到我的服務器並可能影響最終用戶。正則表達式來驗證圖像源
我能想到以下的圖像源的格式:
謝謝, Gaurav
一個正則表達式可能不是你想要的。由於您使用的是Java,使用URI
:
final URI input;
try {
input = URI.create(inputStringHere);
} catch (IllegalArgumentException e) {
// Not even a valid URI: deal with it
}
// do other tests on input
此解決方案假定你正在服用的URL作爲參數,然後檢索來自該網址服務器端的數據。
單獨使用正則表達式並不是一種可行的方式,因爲它僅檢查文件名,並不會告訴您實際數據是否是惡意的。我會這樣做的三個步驟:
/\.(jpe?g|gif|png)$/
file -I -
管道傳輸文件數據。即使這樣也不能絕對保證安全,但它應該剔除掉最明顯的矢量攻擊。
你使用哪種語言? –
此時我正在使用Java。 –
小心給出你認爲是XSS的例子嗎? – fge