防止请求标头上的CRLF漏洞

时间:2018-04-02 07:58:21

标签: 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, currentUser?.LoginEmail);

请注意。目前使用Microsoft.Extensions.Logging作为我的日志工具

1 个答案:

答案 0 :(得分:1)

由于您使用PathString返回的HttpContext.Request.Path,因此您获得了转义字符串:

  

路径字符串以适合组合到URI表示

的方式进行转义

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

如果您要提出/foo%5Cnbar编码/foo\nbar之类的请求,那么您将在日志文件中获得/foo%5Cnbar两行代码。