Проверка запроса – предотвращение атак скриптов

Linux loves

Введение

Новые возможности в версии 1.1 ASP.NET Validation защищает сервер от получения некодированного HTML-содержимого. Это свойство предназначено для предотвращения определенных атак типа script-injection, при которых клиентский скрипт или HTML-код может быть неосознанно представлен серверу, сохранен, а затем передан другим пользователям. Мы настоятельно рекомендуем проверять все вводимые данные и HTML-код.

Например, создается веб-страница, которая запрашивает у пользователя адрес электронной почты, а затем сохраняет его в базе данных. Если пользователь набирает alert(«привет от скрипта») вместо действительного адреса электронной почты, если содержимое было неправильно закодировано, может быть выполнен этот скрипт. Новая функция проверки запросов ASP.NET 1.1 предотвращает эту ситуацию.

Что полезного в этой функции?

Большинство сайтов не понимают, что они уязвимы для простых скриптовых атак. Независимо от того, является ли целью этих атак повреждение вашего сайта или потенциальное выполнение клиентского скрипта для перенаправления пользователя на сайт хакера, атаки с использованием скриптов являются проблемой, с которой должны бороться веб-разработчики.

Атаки с использованием скриптовых инъекций являются проблемой для всех веб-разработчиков, независимо от того, используют ли они ASP.NET, ASP или другие технологии веб-разработки.

Новая функция проверки запросов ASP.NET 1.1 защищает от этих атак, не позволяя серверу обрабатывать некодированное содержимое HTML до тех пор, пока веб-разработчик не решит разрешить это содержимое.
Чего ожидать: Страница ошибки

Пример ASP показан ниже.NET-код:

Чем полезна эта функция?

Запуск этого кода приведет к появлению простой страницы, которая позволяет набрать текст в текстовом поле, нажать кнопку и отобразить текст в элементе управления label:

Чем полезна эта функция - 2

В то время как в месте, где должен быть введен текст, мы вводим текст JavaScript, напр

<скрипт>alert("здравствуйте!")</script>

и получить исключительную ситуацию:

ЧИТАТЬ ЕЩЁ:  Карта сайта в форматах html и xml - создание и настройка

Проверка запроса – предотвращение атак скриптов

Сообщение об ошибке гласит «потенциально опасный запрос.Форма …» и содержит более подробное описание того, что именно произошло и как изменить поведение. Например:

Проверка запроса выявила потенциально опасные данные клиента, и обработка запроса была отменена. Это значение может указывать на попытку нарушить безопасность вашего приложения. Установив validateRequest=false в директиве страницы или в разделе конфигурации, вы можете отключить валидацию. В этом случае, однако, настоятельно рекомендуется, чтобы приложение явно проверяло все входные данные.

Отключите проверку запроса на странице

Чтобы отключить проверку запроса на странице, необходимо установить атрибут Page validateRequest в false:

<%@ Страница validateRequest="ложный"  %>

Предупреждение: когда проверка запроса отключена, на сервер может быть отправлено потенциально опасное содержимое; ответственность за правильность кодирования или синтаксического анализа содержимого лежит на разработчике сайта.

Отключение проверки запросов в приложении

Чтобы отключить проверку запросов в вашем приложении, вам нужно изменить или создать веб-страницу.конфигурации приложения и присвоить атрибут validateRequest секции <PAGES /> имеет значение false:

<config> 
    <система.веб-сайт> 
        <pages validateRequest="ложный" /> 
    </система.веб-сайт> 
</configuration>

Если вы хотите отключить проверку для вашего приложения на сервере, вы можете сделать следующее изменение на своей машине.config.
Предупреждение: когда проверка запроса отключена, на сервер может быть отправлено потенциально опасное содержимое; ответственность за то, чтобы содержимое было правильно закодировано или проверено, лежит на разработчике приложения.

Следующий код был изменен, и функция validateRequest отключена:

Отключение проверки для приложений

Теперь, если в текстовое окно вставить следующий JavaScript

<скрипт>alert("здравствуйте!")</script>

результат будет следующим:

Отключите проверку запросов для вашего приложения - 2

Чтобы предотвратить это, при отключенной валидации запроса необходимо закодировать содержимое в HTML.

Как кодировать содержимое в HTML

Если у вас отключена валидация, хорошей практикой является кодирование содержимого в HTML. HTML-кодирование автоматически заменит все символы » (наряду с некоторыми другими) на соответствующие кодированные HTML-представления.

ЧИТАТЬ ЕЩЁ:  Как эмулировать мобильные устройства в Google Chrome

Содержимое можно легко закодировать на сервере с помощью HTML-кода, используя.API HtmlEncode(string). Содержание также может быть легко декодировано в HTML, t.е. Возврат к стандартному HTML с помощью метода сервера.HtmlDecode(string).

Как HTML кодирует содержимое

В результате:

Как закодировать содержимое в HTML - 2

Оцените статью