我面臨一個問題,我沒有具體的解決方法。
該專案是一個針對 .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讀到了這篇文章,但無法應用它。
有人能幫我嗎?
非常感謝 :)
uj5u.com熱心網友回復:
問題是攻擊者可以在查詢字串中放入一些 javascript(或其他有害代碼)。您的代碼正在將此字串傳遞給另一個頁面,而無需任何檢查。
我認為這可以通過在將其傳遞到下一頁之前對該字串進行 html 編碼來解決。
像這樣:
Response.Redirect($"~/dummyexample.aspx{HttpUtility.HtmlEncode(Request.Url.Query)}&pid={x.Id}");
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/429450.html
