我得到了我的javaEE應用程序的veracode報告。它在任何日誌記錄上都有缺陷(使用log4j),所以我將StringEscapeUtils.escapeJava(log)
添加到它們中,但veracode一直將它們報告爲安全缺陷。安全漏洞 - veracode報告 - crlf注入
這是一個正確的解決方案嗎? 我還能做什麼?
這是報告信息: 標題:日誌
不正確的輸出中和說明: 函數調用可能會導致日誌鍛造攻擊。將非用戶提供的數據寫入日誌文件允許攻擊者僞造日誌條目或將惡意內容注入日誌文件。損壞的日誌文件可用於覆蓋攻擊者的蹤跡或作爲對日誌查看或處理實用程序的攻擊的傳遞機制。例如,如果網絡管理員使用基於瀏覽器的實用程序查看日誌,則可能會發生跨站點腳本攻擊。
建議: 儘可能避免直接在日誌文件中嵌入用戶輸入。通過使用安全日誌記錄機制(例如OWASP ESAPI Logger)來清理用戶提供的用於構造日誌 的數據,該機制將自動刪除 意外的回車和換行,並且可以配置爲使用HTML實體編碼,用於非字母數字的 數據。只有在絕對必要時編寫自定義黑名單代碼。始終驗證用戶提供的輸入以確保 符合預期格式,並儘可能使用集中式數據驗證例程。
他們建議使用ESAPI,但它是一個非常大的項目,所以我需要最簡單的辦法,謂就是爲什麼我用String.escape「StringEscapeUtils.escapeJava(日誌)」
THX先進試過!
您能否提供來自Veracode報告的更多信息?當然可以剝離任何識別信息 – 2013-04-26 00:02:11