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 |
Возвращает |
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) |