[英]outputStream writing a byteArray - XSS prevention
我正在使用通過應用程序安全性的軟件,該軟件指示行代碼“可能不安全”。
給定以下代碼,該應用程序正在對outputStream.write()
行進行簽名,以指責網頁中與腳本相關的HTML標簽的不正確中和
response.addHeader("Content-Disposition","attachment; filename=" + Util.NeutralizeFileName(filename));
byte[] bytes = obj_Data.getBytes("File");
ServletOutputStream ouputStream = response.getOutputStream();
ouputStream.write(bytes, 0, bytes.length);
ouputStream.flush();
ouputStream.close();
實際上,我不是在編寫html頁面,而是在下載文件。 並且所有數據在轉換為字節之前都將得到驗證和中和。
所以,我的問題是:這是錯誤的警告嗎? 如果沒有,我該怎么做才能正確驗證?
用戶仍然可以選擇在瀏覽器中打開文件。 例如,在IE中,用戶經常會看到一個對話框,在該對話框中,他/她可以在“取消”,“保存”和“打開”之間進行選擇,其中“打開”將在當前選項卡中打開。 您可以通過使用標頭禁用打開。 這是否容易受到xss的影響還取決於內容類型。 是HTML嗎?
在某些安全性分析引擎中(以我的情況為例) ,分析應用程序標記軟件正在寫出數據的任何區域,這些區域是由外部(例如 , 用戶)的數據發起的,這些區域被認為超出了信任范圍 。
因此,這不一定是錯誤的警告,而是分析應用程序的設計行為,它可能無法理解輸出的上下文(無論是html還是字節文件)。
我可以提供的最佳建議是咨詢應用程序支持或文檔本身,您可以從中檢索用於標記軟件不安全區域的標准信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.