Снимите часть Server.UrlPathEncode(page.root)
и используйте Server.Transfer()
вместо Response.Redirect()
.
Server.Transfer()
переводит пользователя на другую страницу того же сайта и практически не рискует случайно направить кого-то на другой сайт.
Response.Redirect()
подходит для случаев, когда вы хотите перенаправить кого-то на другой сайт.
Кроме того, Fortify не нравится Request.Params[]
из-за его возможной неоднозначности. Осторожный злоумышленник может на некоторых серверах отправить UTF-7 или непечатную версию имени в качестве одной из переменных запроса и позволить имени переменной содержать фактическую инъекцию XSS или перезаписать GET-запрос значение с cookie с тем же именем. Убедитесь, что имя и значение имеют htmlencoded, и рассмотрите возможность использования Request.QueryString[parametername]
вместо Request.Params[parametername]
, чтобы избежать других проблем с Fortify.
Надеюсь, это поможет вам справиться с проблемами фортификации!