Java代碼審計 HTTP頭操縱 response.addHeader()


 

系統中數據包含在一個HTTP響應頭文件里,未經驗證就發送給了web用戶,即獲取未經驗證的值輸入到頭文件中。

String fileName = request.getParameter("fileName");
fileName = new String(fileName.getBytes("gb2312","iso-8859-1"));
string header = request.getParameter("headerInfo"); string data = request.getParameter("dataInfo"); //生成excel工作簿 HSSFWorkbook wkb = ExportUtil.exportExcel(header,data,getDataList(request)); //放回前台提供下載 response.setContentType("application/x-download;charset-utf-8"); response.addHeader("Content-DEsposition","attachment;filename="+filename);

修復建議:  

  攻擊者利用未經驗證的字符,可以提交一個惡意字符串,不僅可以控制應用程序要發送的響應剩余頭文件和正文,還可以創建完全受其控制的其他響應。

  對即將加入響應頭文件的值進行輸入驗證,並檢驗其屬性是否正確,驗證所有應用程序輸入數據或向用戶輸出的數據。

  建議可以創建一份安全字符自名單,其中的字符允許出現在HTTP響應頭文件中,並且只接受完全由這些受認可的字符組成的輸入。

  例如,有效的用戶名可能僅包含字母數字字符,帳號可能僅包含0-9的數字.或者建立黑名單如:校驗禁止如“:”(冒號)和“=”(等號)及\r\n等。


 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM