it seems like the Checkmarx tool is correct in this case.
A "Log Forging" vulnerability means that an attacker could engineer logs of security-sensitive actions and lay a false audit trail, potentially implicating an innocent user or hiding an incident.
While using htmlEscape
will escape some special characters:
<
represents the <
sign.
&gt;
represents the >
sign.
&amp;
represents the &
sign.
&quot;
represents the "
mark.
It will not escape or remove new-line/EOL/tab characters that must be avoided in order to keep logs integrity.
The best practice recommendations to avoid log forging are:
Make sure to replace all relevant dangerous characters. example:
cleanInput = input.replace('\t', '-').replace('\n', '-').replace('\r', '-');
Validate all input, regardless of source. Validation should be based on a whitelist. Accept only data fitting a specified structure, rather than reject bad patterns. Check for: Data type, Size, Range, Format, Expected values.
Hopefully, that solves your problem.