我正在尝试修复我的应用程序记录器上的CRLF漏洞,目前记录了我的HTTP请求路径,是否有办法验证此方法?要删除我的请求路径上的任何CR LF注入,目前使用C#作为我的编程语言
记录错误时,这是我的核心代码
_logger.LogInformation(e, "InactiveTenantException caught during api request {RequestPath} {Tenant} {User}", context.Request.Path, currentUser?.Tenant, currentUser?.LoginEmail);
注意。当前使用Microsoft.extensions.logging作为我的记录工具
,由于您使用的是HttpContext.Request.Path
返回的PathString
,因此您正在获得一个逃脱的字符串:
路径字符串以一种合并到URI表示形式的方式
是正确的。
因此,您的代码中不应该存在CRLF漏洞。
如果您将提出一个请求,例如/foo%5Cnbar
WICH是编码/foonbar
,则您将在日志文件中获得两行的/foo%5Cnbar
。