問題種類:Log Forging
問題說明:
Log中存入由不可信任來源傳入之字串,導致 Log 之正確性存在有風險。
建議處理:
在記錄 Log 時,儘可能使用由伺服器所控制的值,而非使用者所提供的資料,若要使用使用者所提供的資料,至少要過濾 \n 與 \r這些符號 (但即使過濾了,仍有風險存在也會被認列弱點)。
可用已知 Library 進行斷行與特殊字元過濾
例如:
import org.apache.commons.lang3.StringEscapeUtils;
String escapedToken = input.replace("\n", "").replace("\r", ""); //必要過濾條件
escapedToken = StringEscapeUtils.escapeJava(escapedToken); //次要過濾條件
沒有留言:
張貼留言