C# 防止请求头上的CRLF漏洞

C# 防止请求头上的CRLF漏洞,c#,asp.net-core-middleware,crlf-vulnerability,C#,Asp.net Core Middleware,Crlf Vulnerability,我正在尝试修复我的应用程序记录器上的CRLF漏洞。我正在记录我的http请求路径。是否有方法验证此漏洞?要删除请求路径上的任何CR LF注入,我当前使用c#作为编程语言 这是我记录错误时的核心代码 _logger.LogInformation(e, "InactiveTenantException caught during api request {RequestPath} {Tenant} {User}", context.Request.Path, currentUser?.Tenant

我正在尝试修复我的应用程序记录器上的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作为我的日志记录工具

,因为您使用的是由返回的,您将获得一个转义字符串:

路径字符串的转义方式正确,适合组合到URI表示中

因此,代码中不应该存在CRLF漏洞


如果您将发出一个像
/foo%5Cnbar
这样的请求,该请求已编码
/foo\nbar
,那么您将在日志文件中获得两行的
/foo%5Cnbar
istead。

如果我正确阅读了您的问题,您需要做的就是清理您收到的URL字符串。请参见这里的示例