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 |
Возвращает ошибку |
| 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) |