Как решить проблему маршрутизации с помощью закодированного URL-адреса? - PullRequest
0 голосов
/ 12 апреля 2019

Я пытался решить проблемы, связанные с XSS, о которых сообщает инструмент безопасности, который мы используем на нашем сервере. Это межсайтовый скриптинг из параметра «ReturnUrl» на странице «/ Вход / Индекс». Я просмотрел почти все сообщения, доступные на StackOverflow. Я просто не мог понять, как решить эту проблему маршрутизации. Любое руководство будет оценено.

Я использовал библиотеку AntiXssEncoder.

<httpRuntime encoderType="System.Web.Security.AntiXss.AntiXssEncoder,System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>

В методе «Logon \ Index» я закодировал параметр url. Я использовал приведенный ниже код для перенаправления пользователя.

string encodedurl = HttpUtility.UrlEncode(returnUrl, Encoding.UTF8);
Response.Redirect(encodedurl);

мой параметр url: "ReturnUrl = / fly / Manage"

https://localhost:7777/fly/Logon/Index?ReturnUrl=/fly/Manage

Факт: https://localhost:7777/fly/Logon/%2Ffly%2FManage

Желаемый: https://localhost:7777/%2Ffly%2FManage

Если я не использую HttpUtility.UrlEncode, вместо этого используйте Response.Redirect (ReturnUrl); с "ReturnUrl = / fly / Manage"

Браузер автоматически перенаправит пользователя на нужный URL: https://localhost:7777/fly/Manage

Я разработчик для Windows и не очень разбираюсь в маршрутах asp.net или mvc. Любая помощь будет принята с благодарностью. Спасибо.

...