Переопределите свойство HttpContext.Current.Request.Url в c #, чтобы вернуть закодированный URL. - PullRequest
0 голосов
/ 18 сентября 2018

В одном из моих приложений я использую код HttpContext.Current.Request.Url в aspx для получения текущей страницы url.Поскольку страница url используется в java-скрипте, высока вероятность передачи вредоносного скрипта в url, чтобы сломать функцию JS.

Один из вариантов заключается в том, что мы можем закодировать url используя

HttpUtility.HtmlEncode(HttpContext.Current.Request.Url)

, но этот фрагмент кода является частью пользовательского контроля (.ascx file), я должен изменить это во всех этих пользовательских элементах управления.

Так есть ли способ переопределить свойство

HttpContext.Current.Request.Url

, чтобы оно возвращало закодированный url?Поэтому я могу использовать какой-то обработчик для обработки всего свойства url в приложении?

Спасибо за вашу помощь.

1 Ответ

0 голосов
/ 18 сентября 2018

Вы не можете переопределить HttpUtility.HtmlEncode, потому что метод является статическим методом.

Но я думаю, что вы можете попробовать использовать метод расширения , чтобы оправдать ваши ожидания.

public static class UriExtension {
    public static string HtmlEncode(this Uri uri){
        HttpUtility.HtmlEncode(uri);
         // do the logic...

    }
}

Вы можете вызвать метод

HttpContext.Current.Request.Url.HtmlEncode()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...