我期待爲我的網站的用戶提供對JAR文件中提供的一些靜態資源的訪問。如何在使用Class.getResource()時防止路徑遍歷攻擊()
我無法提供用戶應該能夠訪問所有文件的列表,但我可以保證,他們都包含在JAR的子目錄中,如:
public-access/file-1
public-access/file-2
public-access/sub-dir/file-3
的文件將通過以下方式訪問:
this.getClass().getResource("/public-access/" + requestedFile);
是否有推薦的方法來防止路徑穿越攻擊?這是爲了防止惡意用戶請求一個叫做例如../secret
,或sub-dir/../../secret
我正在尋找一個解決這一點。有趣的是,我不能在路徑中使用「../」來製造這樣的攻擊。也許它正在被Java中的某個地方過濾掉。你是否設法自己執行攻擊? – Zero3 2015-03-19 23:49:15