.Net RedirectTo 与来自原始请求声纳问题的查询字符串
.Net RedirectTo with querystring from original request Sonar Issue
我遇到了一个问题,但我没有具体的解决方法。
该项目是一个针对.Net Framework 4.7.2的Webforms,代码由SonarQube分析。
代码中某处有一行
Response.Redirect($"~/dummyexample.aspx{Request.Url.Query}&pid={x.Id}");
所以因为我们采用 Request.Url.Query 它触发了问题“HTTP 请求重定向不应该对伪造攻击开放”https://rules.sonarsource.com/csharp/RSPEC-5146
我明白为什么会触发这个问题,但我不知道如何纠正它(我们不能有 url 的“白名单”)。
我从 msdn https://docs.microsoft.com/en-us/aspnet/mvc/overview/security/preventing-open-redirection-attacks 上读到了这个,但无法应用它。
有人可以帮助我吗?
非常感谢:)
问题是攻击者可以在查询字符串中放置一些 javascript(或其他有害代码)。您的代码未经任何检查就将此字符串传递到另一个页面。
我认为这可以通过 html 在将其传递到下一页之前对该字符串进行编码来解决。
像这样:
Response.Redirect($"~/dummyexample.aspx{HttpUtility.HtmlEncode(Request.Url.Query)}&pid={x.Id}");
我遇到了一个问题,但我没有具体的解决方法。
该项目是一个针对.Net Framework 4.7.2的Webforms,代码由SonarQube分析。
代码中某处有一行
Response.Redirect($"~/dummyexample.aspx{Request.Url.Query}&pid={x.Id}");
所以因为我们采用 Request.Url.Query 它触发了问题“HTTP 请求重定向不应该对伪造攻击开放”https://rules.sonarsource.com/csharp/RSPEC-5146
我明白为什么会触发这个问题,但我不知道如何纠正它(我们不能有 url 的“白名单”)。
我从 msdn https://docs.microsoft.com/en-us/aspnet/mvc/overview/security/preventing-open-redirection-attacks 上读到了这个,但无法应用它。
有人可以帮助我吗?
非常感谢:)
问题是攻击者可以在查询字符串中放置一些 javascript(或其他有害代码)。您的代码未经任何检查就将此字符串传递到另一个页面。
我认为这可以通过 html 在将其传递到下一页之前对该字符串进行编码来解决。
像这样:
Response.Redirect($"~/dummyexample.aspx{HttpUtility.HtmlEncode(Request.Url.Query)}&pid={x.Id}");