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

Важно!

В этом примере имеется текстовое поле, принимающее вводимые пользователем данные, что является потенциальной угрозой безопасности. По умолчанию данные, вводимые пользователем на веб-страницах 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 @ Page в директиве значение false, как показано в следующем примере:

<%@ Page validateRequest="false" %>

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

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

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

Примечание

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

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

HttpRequestValidationException()

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

HttpRequestValidationException(String)

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

HttpRequestValidationException(String, Exception)

Инициализирует новый экземпляр класса 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)

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