Fortify で Log Forging の問題を解決できません。「検証されていないユーザー入力をログに書き込む」という問題は、getLongFromTimestamp() メソッドの両方のロギング呼び出しから発生しています。
public long getLongFromTimestamp(final String value) {
LOGGER.info("getLongFromTimestamp(" + cleanLogString(value) + ")");
long longVal = 0;
Date tempDate = null;
try {
tempDate = new SimpleDateFormat(FORMAT_YYYYMMDDHHMMSS, Locale.US).parse(value);
} catch (ParseException e) {
LOGGER.warn("Failed to convert to Date: " + cleanLogString(value) + " Exception: " + cleanLogString(e.getMessage()));
throw new Exception(e);
}
if (tempDate != null) {
longVal = tempDate.getTime();
}
return longVal;
}
private cleanLogString(String logString) {
String clean = logString.replaceAll("[^A-Za-z0-9]", "");
if(!logString.equals(clean)) {
clean += " (CLEANED)";
}
return clean;
}
cleanLogString() メソッドは、私のプロジェクトの他の Log Forging Fortify の問題を修正しましたが、上記の 2 つには影響しません。
どんな助けでも大歓迎です!