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
атрибуту в директиве false
@ Page
значение , как показано в следующем примере:
<%@ 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 |
Возвращает |
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) |