как мы должны проверить реферер http-заголовка в aspx .net

StackOverflow https://stackoverflow.com/questions/677116

Вопрос

Я хочу убедиться, что ничто нежелательное не попадет к рефереру на странице с ошибкой.

Что я должен проверять, чтобы подтвердить http-заголовок.

ниже приведен мой текущий код:

// Ensure the referrer header is good
if (this.Request.UrlReferrer.IsWellFormedOriginalString() &&
    this.Request.UrlReferrer.Host.Equals(this.Request.Url.Host))
{

это приведет к сбою сканирования acunetix, в котором используются %3C и %3E вместо < и > например, мне, очевидно, нужно охватить html-кодировку - есть ли что-то еще, чего мне не хватает?

Обновить Я могу перехватить все сканы acunetix, используя приведенный ниже код:

if (this.Request.UrlReferrer.IsWellFormedOriginalString() &&
    this.Request.UrlReferrer.Host.Equals(this.Request.Url.Host) &&
    !Regex.IsMatch(this.Request.UrlReferrer.ToString(),
                   "%3C",
                   RegexOptions.IgnoreCase))
{
Это было полезно?

Решение

Я хочу убедиться, что ничто нежелательное не попадет к рефереру на странице с ошибкой.

Затем всегда используйте HTML-экранирование любой строки, включая URL—адреса ссылок, которые вы выводите на страницу ошибки.

Попытка выделить и занести в черный список входные данные, содержащие потенциально опасные символы, в каждом конкретном случае приводит к обратному результату.Вероятно, вы не отловите все возможные атаки и без необходимости запретите допустимые URL-адреса.(Вполне разумно иметь URL-адрес с ‘%3C’ внутри.)

Другие советы

this.Запрос.UrlReferrer может быть нулевым, если ни один реферер не был предоставлен или не участвовал.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top