HttpRequestValidationException 클래스

정의

잠재적으로 악의적인 입력 문자열이 요청 데이터의 일부로 클라이언트에서 수신될 때 throw되는 예외입니다. 이 클래스는 상속할 수 없습니다.

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>

설명

악의적인 입력 문자열을 사용하는 해커 공격을 방지하려면 웹 애플리케이션에서 사용자 입력을 제한하고 유효성을 검사해야 합니다. 교차 사이트 스크립팅 공격은 이러한 해킹의 한 예입니다. 다른 유형의 악의적이거나 원치 않는 데이터는 다양한 형식의 입력을 통해 요청으로 전달할 수 있습니다. 애플리케이션에서 낮은 수준으로 전달되는 데이터의 종류를 제한하여 코드를 사용하는 프로그래머가 적절한 유효성 검사 기술을 적용하지 않는 경우에도 바람직하지 않은 이벤트를 방지할 수 있습니다.

요청 유효성 검사는 잠재적으로 악의적인 클라이언트 입력을 검색하고 이 예외를 throw하여 요청 처리를 중단합니다. 요청 중단은 사이트 간 스크립팅 공격과 같은 애플리케이션의 보안을 손상시키려는 시도를 나타낼 수 있습니다. 애플리케이션에서 요청 중단과 관련된 모든 입력을 명시적으로 확인하는 것이 좋습니다. 그러나 다음 예제와 같이 지시문 특성을 />로 설정하여 요청 유효성 검사를 사용하지 않도록 설정할 수 있습니다.

<%@ Page validateRequest="false" %>

애플리케이션에 대한 요청 유효성 검사를 사용하지 않도록 설정하려면 다음 예제와 같이 애플리케이션에 대한 Web.config 파일을 수정하거나 만들고 섹션falsepages 특성을 로 설정 validateRequest 해야 합니다.

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

서버의 모든 애플리케이션에 대한 요청 유효성 검사를 사용하지 않도록 설정하려면 Machine.config 파일을 수정할 수 있습니다.

메모

애플리케이션은 ASP.NET 수행된 요청 유효성 검사 외에도 사용하는 모든 입력을 명시적으로 확인하는 것이 좋습니다. 요청 유효성 검사 기능은 모든 공격, 특히 애플리케이션 논리에 대해 특별히 만들어진 공격을 catch할 수 없습니다.

생성자

Name Description
HttpRequestValidationException()

클래스의 새 인스턴스를 HttpRequestValidationException 만듭니다.

HttpRequestValidationException(String, Exception)

지정된 오류 메시지와 예외의 HttpRequestValidationException 원인인 내부 예외에 대한 참조를 사용하여 클래스의 새 인스턴스를 초기화합니다.

HttpRequestValidationException(String)

지정된 오류 메시지를 사용하여 새 HttpRequestValidationException 예외를 만듭니다.

속성

Name Description
Data

예외에 대한 추가 사용자 정의 정보를 제공하는 키/값 쌍의 컬렉션을 가져옵니다.

(다음에서 상속됨 Exception)
ErrorCode

오류의 HRESULT 값을 가져옵니다.

(다음에서 상속됨 ExternalException)
HelpLink

이 예외와 연결된 도움말 파일에 대한 링크를 가져오거나 설정합니다.

(다음에서 상속됨 Exception)
HResult

특정 예외에 할당된 코딩된 숫자 값인 HRESULT를 가져오거나 설정합니다.

(다음에서 상속됨 Exception)
InnerException

현재 예외를 Exception 발생시킨 인스턴스를 가져옵니다.

(다음에서 상속됨 Exception)
Message

현재 예외를 설명하는 메시지를 가져옵니다.

(다음에서 상속됨 Exception)
Source

오류를 발생시키는 애플리케이션 또는 개체의 이름을 가져오거나 설정합니다.

(다음에서 상속됨 Exception)
StackTrace

호출 스택에서 직접 실행 프레임의 문자열 표현을 가져옵니다.

(다음에서 상속됨 Exception)
TargetSite

현재 예외를 throw하는 메서드를 가져옵니다.

(다음에서 상속됨 Exception)
WebEventCode

HTTP 예외와 연결된 이벤트 코드를 가져옵니다.

(다음에서 상속됨 HttpException)

메서드

Name Description
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)

이벤트

Name Description
SerializeObjectState

예외에 대한 직렬화된 데이터를 포함하는 예외 상태 개체를 만들기 위해 예외가 serialize될 때 발생합니다.

(다음에서 상속됨 Exception)

적용 대상