HttpRequestValidationException Класс

Определение

Исключение, возникающее при получении от клиента потенциально вредоносной входной строки в рамках данных запроса. Этот класс не наследуется.

public ref class HttpRequestValidationException sealed : System::Web::HttpException
public sealed class HttpRequestValidationException : System.Web.HttpException
[System.Serializable]
public sealed class HttpRequestValidationException : System.Web.HttpException
type HttpRequestValidationException = class
    inherit HttpException
[<System.Serializable>]
type HttpRequestValidationException = class
    inherit HttpException
Public NotInheritable Class HttpRequestValidationException
Inherits HttpException
Наследование
Атрибуты

Примеры

В следующем примере кода показано, как проверить ввод вредоносных пользователей с помощью объекта HttpRequestValidationException.

Important

В этом примере есть текстовое поле, которое принимает входные данные пользователя, которое является потенциальной угрозой безопасности. По умолчанию ASP.NET веб-страницы проверяют, что входные данные пользователя не включают скрипт или ЭЛЕМЕНТЫ HTML. Дополнительные сведения см. в разделе "Обзор эксплойтов скриптов".

<%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
    void Button1_Click(object sender, EventArgs e)
    {
        Label1.Text = txt1.Text;
    }
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:TextBox id="txt1" Runat="server" />
        <asp:Button ID="Button1" Runat="server" Text="Button" OnClick="Button1_Click" />
        <br /><br />You entered: <asp:Label ID="Label1" Runat="server" Text="Label" />.
    </div>
    </form>
</body>
</html>
<%@ Page Language="VB" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">
    Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs)
        Label1.Text = txt1.Text
    End Sub
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:TextBox id="txt1" Runat="server" />
        <asp:Button ID="Button1" Runat="server" Text="Button" OnClick="Button1_Click" />
        <br /><br />You entered: <asp:Label ID="Label1" Runat="server" Text="Label" />.
    </div>
    </form>
</body>
</html>

Комментарии

Ограничение и проверка входных данных пользователей важно в веб-приложении, чтобы предотвратить атаки хакеров, основанные на вредоносных строках ввода. Атаки на межсайтовые сценарии являются одним из примеров таких взлома. Другие типы вредоносных или нежелательных данных могут передаваться в запросе с помощью различных форм входных данных. Ограничивая типы данных, передаваемые на низком уровне в приложении, можно предотвратить нежелательные события, даже если программисты, использующие ваш код, не помещают надлежащие методы проверки.

Проверка запроса обнаруживает потенциально вредоносные данные клиента и создает это исключение для прерывания обработки запроса. Прерывание запроса может указывать на попытку скомпрометировать безопасность приложения, например атаку на междоменный скрипт. Настоятельно рекомендуется явно проверять все входные данные в отношении прерываний запросов. Однако вы можете отключить проверку запроса, задав validateRequest атрибут в директиве @ Pagefalseследующим образом:

<%@ Page validateRequest="false" %>

Чтобы отключить проверку запросов для приложения, необходимо изменить или создать файл Web.config для приложения и задать validateRequest для него атрибут pages раздела false, как показано в следующем примере:

<configuration>
  <system.web>
    <pages validateRequest="false" />
  </system.web>
</configuration>

Чтобы отключить проверку запросов для всех приложений на сервере, можно внести это изменение в файл Machine.config.

Note

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

Конструкторы

Имя Описание
HttpRequestValidationException()

Создает новый экземпляр класса HttpRequestValidationException.

HttpRequestValidationException(String, Exception)

Инициализирует новый экземпляр HttpRequestValidationException класса с указанным сообщением об ошибке и ссылкой на внутреннее исключение, которое является причиной исключения.

HttpRequestValidationException(String)

Создает новое HttpRequestValidationException исключение с указанным сообщением об ошибке.

Свойства

Имя Описание
Data

Возвращает коллекцию пар "ключ-значение", которые предоставляют дополнительные пользовательские сведения об исключении.

(Унаследовано от Exception)
ErrorCode

Возвращает ошибку HRESULT .

(Унаследовано от ExternalException)
HelpLink

Возвращает или задает ссылку на файл справки, связанный с этим исключением.

(Унаследовано от Exception)
HResult

Возвращает или задает HRESULT, закодированное числовое значение, назначенное определенному исключению.

(Унаследовано от Exception)
InnerException

Exception Возвращает экземпляр, вызвавшего текущее исключение.

(Унаследовано от Exception)
Message

Возвращает сообщение, описывающее текущее исключение.

(Унаследовано от Exception)
Source

Возвращает или задает имя приложения или объекта, вызывающего ошибку.

(Унаследовано от Exception)
StackTrace

Возвращает строковое представление непосредственных кадров в стеке вызовов.

(Унаследовано от Exception)
TargetSite

Возвращает метод, который вызывает текущее исключение.

(Унаследовано от Exception)
WebEventCode

Возвращает коды событий, связанные с исключением HTTP.

(Унаследовано от HttpException)

Методы

Имя Описание
Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetBaseException()

При переопределении в производном классе возвращает Exception первопричину одного или нескольких последующих исключений.

(Унаследовано от Exception)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetHtmlErrorMessage()

Возвращает сообщение об ошибке HTML для возврата клиенту.

(Унаследовано от HttpException)
GetHttpCode()

Возвращает код состояния HTTP-ответа, возвращаемый клиенту.

(Унаследовано от HttpException)
GetObjectData(SerializationInfo, StreamingContext)

Получает сведения об исключении и добавляет его в SerializationInfo объект.

(Унаследовано от HttpException)
GetType()

Возвращает тип среды выполнения текущего экземпляра.

(Унаследовано от Exception)
MemberwiseClone()

Создает неглубокую копию текущей Object.

(Унаследовано от Object)
ToString()

Возвращает строку, содержащую HRESULT ошибки.

(Унаследовано от ExternalException)

События

Имя Описание
SerializeObjectState
Устаревшие..

Происходит при сериализации исключения для создания объекта состояния исключения, содержащего сериализованные данные об исключении.

(Унаследовано от Exception)

Применяется к