根据要求防止 CRLF 漏洞 header
Preventing CRLF vulnerability on request header
我正在尝试修复我的应用程序记录器上的 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 作为我的记录工具
由于您使用的是 PathString
that is returned by HttpContext.Request.Path
,因此您得到的是转义字符串:
the path string escaped in a way which is correct for combining into the URI representation
因此,您的代码中不应存在 CRLF 漏洞。
如果您发出类似 /foo%5Cnbar
的请求,其编码为 /foo\nbar
那么您将在日志文件中得到 /foo%5Cnbar
而不是两行。
我正在尝试修复我的应用程序记录器上的 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 作为我的记录工具
由于您使用的是 PathString
that is returned by HttpContext.Request.Path
,因此您得到的是转义字符串:
the path string escaped in a way which is correct for combining into the URI representation
因此,您的代码中不应存在 CRLF 漏洞。
如果您发出类似 /foo%5Cnbar
的请求,其编码为 /foo\nbar
那么您将在日志文件中得到 /foo%5Cnbar
而不是两行。