HttpRequestValidationException HttpRequestValidationException HttpRequestValidationException HttpRequestValidationException Class

정의

클라이언트에서 보낸 요청 데이터에 위험할 수 있는 입력 문자열이 포함된 경우 throw되는 예외입니다.The exception that is thrown when a potentially malicious input string is received from the client as part of the request data. 이 클래스는 상속될 수 없습니다.This class cannot be inherited.

public ref class HttpRequestValidationException sealed : System::Web::HttpException
[System.Serializable]
public sealed class HttpRequestValidationException : System.Web.HttpException
type HttpRequestValidationException = class
    inherit HttpException
Public NotInheritable Class HttpRequestValidationException
Inherits HttpException
상속
특성

예제

다음 코드 예제를 사용 하 여 악성 사용자 입력을 확인 하는 방법을 보여 줍니다는 HttpRequestValidationException합니다.The following code example demonstrates how to check for malicious user input by using an HttpRequestValidationException.

중요

이 예제에는 사용자 입력을 허용하는 텍스트 상자가 있으므로 보안상 위험할 수 있습니다.This example has a text box that accepts user input, which is a potential security threat. 기본적으로 ASP.NET 웹 페이지는 사용자 입력 내용에 스크립트 또는 HTML 요소가 포함되어 있지 않은지 확인합니다.By default, ASP.NET Web pages validate that user input does not include script or HTML elements. 자세한 내용은 Script Exploits Overview를 참조하세요.For more information, see Script Exploits Overview.

<%@ 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>

설명

제한 하 고 사용자 입력 유효성 검사에 악의적인 입력된 문자열에서 사용 하는 해커가 공격을 방지 하기 위해 웹 애플리케이션에서 반드시 합니다.Constraining and validating user input is essential in a Web application to prevent hacker attacks that rely on malicious input strings. 사이트 간 스크립팅 공격에는 이러한 해킹의 한 예로 있습니다.Cross-site scripting attacks are one example of such hacks. 다른 유형의 악성 또는 원치 않는 데이터는 다양 한 형태의 입력을 통해 요청에 전달할 수 있습니다.Other types of malicious or undesired data can be passed in a request through various forms of input. 애플리케이션에서 낮은 수준으로 전달 되는 데이터의 종류를 제한 하 여 코드를 사용 하는 프로그래머 위치에 적절 한 유효성 검사 기술을 배치 하지 않는 경우에 예기치 않은 이벤트를 방지할 수 있습니다.By limiting the kinds of data that is passed at a low level in an application, you can prevent undesirable events, even when programmers who are using your code do not put the proper validation techniques in place.

악성 클라이언트 입력을 검색 하 고 요청 처리를 중단 하려면이 예외를 throw 하는 요청 유효성 검사.Request validation detects potentially malicious client input and throws this exception to abort processing of the request. 요청이 중단 교차 사이트 스크립팅 공격 등의 애플리케이션의 보안을 손상 시킬 시도 나타낼 수 있습니다.A request abort can indicate an attempt to compromise the security of your application, such as a cross-site scripting attack. 애플리케이션에 명시적으로 요청 중단과 관련 된 모든 입력 확인 것이 좋습니다.It is strongly recommended that your application explicitly check all input regarding request aborts. 그러나 설정 하 여 요청 유효성 검사를 비활성화할 수는 validateRequest 지시문으로 특성 false다음 예제에서와 같이:However, you can disable request validation by setting the validateRequest attribute in the directive to false, as shown in the following example:

<%@ Page validateRequest="false" %>

애플리케이션에 대 한 요청 유효성 검사를 사용 하지 않도록 설정, 수정 하거나 설정 하 여 애플리케이션에 대 한 Web.config 파일을 만든 해야 합니다는 validateRequest 특성을 pages 섹션을 false다음 예제에서와 같이:To disable request validation for your application, you must modify or create a Web.config file for your application and set the validateRequest attribute of the pages section to false, as shown in the following example:

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

서버의 모든 애플리케이션에 대 한 요청 유효성 검사를 사용 하지 않도록 설정 합니다 Machine.config 파일에이 수정이 할 수 있습니다.To disable request validation for all applications on your server, you can make this modification to the Machine.config file.

참고

애플리케이션에 명시적으로 ASP.NET에서 수행 된 요청 유효성 검사 외에도 사용 하 여 모든 입력 확인 것이 좋습니다.It is strongly recommended that your application explicitly check all inputs it uses in addition to the request validation performed by ASP.NET. 요청 유효성 검사 기능이 모든 catch 할 수 없습니다 공격, 특히 애플리케이션 논리에 대해 조작 합니다.The request validation feature cannot catch all attacks, especially those crafted specifically against your application logic.

생성자

HttpRequestValidationException() HttpRequestValidationException() HttpRequestValidationException() HttpRequestValidationException()

HttpRequestValidationException 클래스의 새 인스턴스를 만듭니다.Creates a new instance of the HttpRequestValidationException class.

HttpRequestValidationException(String) HttpRequestValidationException(String) HttpRequestValidationException(String) HttpRequestValidationException(String)

지정한 오류 메시지를 사용하여 새 HttpRequestValidationException 예외를 만듭니다.Creates a new HttpRequestValidationException exception with the specified error message.

HttpRequestValidationException(String, Exception) HttpRequestValidationException(String, Exception) HttpRequestValidationException(String, Exception) HttpRequestValidationException(String, Exception)

지정된 오류 메시지와 해당 예외의 원인인 내부 예외에 대한 참조를 사용하여 HttpRequestValidationException 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the HttpRequestValidationException class with a specified error message and a reference to the inner exception that is the cause of the exception.

속성

Data Data Data Data

예외에 대한 사용자 정의 추가 정보를 제공하는 키/값 쌍의 컬렉션을 가져옵니다.Gets a collection of key/value pairs that provide additional user-defined information about the exception.

(Inherited from Exception)
ErrorCode ErrorCode ErrorCode ErrorCode

오류의 HRESULT를 가져옵니다.Gets the HRESULT of the error.

(Inherited from ExternalException)
HelpLink HelpLink HelpLink HelpLink

이 예외와 연결된 도움말 파일에 대한 링크를 가져오거나 설정합니다.Gets or sets a link to the help file associated with this exception.

(Inherited from Exception)
HResult HResult HResult HResult

특정 예외에 할당된 코드화된 숫자 값인 HRESULT를 가져오거나 설정합니다.Gets or sets HRESULT, a coded numerical value that is assigned to a specific exception.

(Inherited from Exception)
InnerException InnerException InnerException InnerException

현재 예외를 발생시킨 Exception 인스턴스를 가져옵니다.Gets the Exception instance that caused the current exception.

(Inherited from Exception)
Message Message Message Message

현재 예외를 설명하는 메시지를 가져옵니다.Gets a message that describes the current exception.

(Inherited from Exception)
Source Source Source Source

오류를 발생시키는 애플리케이션 또는 개체의 이름을 가져오거나 설정합니다.Gets or sets the name of the application or the object that causes the error.

(Inherited from Exception)
StackTrace StackTrace StackTrace StackTrace

호출 스택의 직접 실행 프레임에 대한 문자열 표현을 가져옵니다.Gets a string representation of the immediate frames on the call stack.

(Inherited from Exception)
TargetSite TargetSite TargetSite TargetSite

현재 예외를 throw하는 메서드를 가져옵니다.Gets the method that throws the current exception.

(Inherited from Exception)
WebEventCode WebEventCode WebEventCode WebEventCode

HTTP 예외와 연결된 이벤트 코드를 가져옵니다.Gets the event codes that are associated with the HTTP exception.

(Inherited from HttpException)

메서드

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

지정한 개체와 현재 개체가 같은지 여부를 확인합니다.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetBaseException() GetBaseException() GetBaseException() GetBaseException()

파생 클래스에서 재정의되었을 때, 하나 이상의 후속 예외의 근본 원인이 되는 Exception을 반환합니다.When overridden in a derived class, returns the Exception that is the root cause of one or more subsequent exceptions.

(Inherited from Exception)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

기본 해시 함수로 작동합니다.Serves as the default hash function.

(Inherited from Object)
GetHtmlErrorMessage() GetHtmlErrorMessage() GetHtmlErrorMessage() GetHtmlErrorMessage()

HTML 오류 메시지를 가져와 클라이언트에게 반환합니다.Gets the HTML error message to return to the client.

(Inherited from HttpException)
GetHttpCode() GetHttpCode() GetHttpCode() GetHttpCode()

HTTP 상태 응답 코드를 가져와 클라이언트에게 반환합니다.Gets the HTTP response status code to return to the client.

(Inherited from HttpException)
GetObjectData(SerializationInfo, StreamingContext) GetObjectData(SerializationInfo, StreamingContext) GetObjectData(SerializationInfo, StreamingContext) GetObjectData(SerializationInfo, StreamingContext)

예외에 대한 정보를 가져와 SerializationInfo 개체에 추가합니다.Gets information about the exception and adds it to the SerializationInfo object.

(Inherited from HttpException)
GetType() GetType() GetType() GetType()

현재 인스턴스의 런타임 형식을 가져옵니다.Gets the runtime type of the current instance.

(Inherited from Exception)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

오류의 HRESULT가 들어 있는 문자열을 반환합니다.Returns a string that contains the HRESULT of the error.

(Inherited from ExternalException)

이벤트

SerializeObjectState SerializeObjectState SerializeObjectState SerializeObjectState

예외에 대한 serialize된 데이터가 들어 있는 예외 상태 개체가 만들어지도록 예외가 serialize될 때 발생합니다.Occurs when an exception is serialized to create an exception state object that contains serialized data about the exception.

(Inherited from Exception)

적용 대상