我使用的是靜態分析工具,發現錯誤和報告下面的代碼警告encodeRedirectURL產生警告
response.sendRedirect(response.encodeRedirectURL(redirectToXXX));
警告說:
此代碼直接寫入一個HTTP參數的HTTP頭文件,其中 允許HTTP響應分裂漏洞。
但是,當我這樣做是這樣的:
redirectToXXX= java.net.URLEncoder.encode(redirectToXXX.toString(),"ISO-8859-1");
response.sendRedirect(response.encodeRedirectURL(redirectToXXX));
警告消失。
我不明白的是,encodeRedirectURL
是應該編碼的網址,如果有必要,所以它爲什麼會產生一個警告然後,並刪除編碼與URLEncoder.encode警告。
redirectToXXX從哪裏來?你還用什麼工具? – Carlo
redirectToXXX包含來自HttpServletRequest的一些參數,我使用FindBugs進行分析。 – comatose
參數中有CRLF。刪除它們並嘗試。 – Dandy