다음을 통해 공유


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

중요

이 예제에는 사용자 입력을 허용하는 텍스트 상자가 있으므로 보안상 위험할 수 있습니다. 기본적으로 ASP.NET 웹 페이지는 사용자 입력 내용에 스크립트 또는 HTML 요소가 포함되어 있지 않은지 확인합니다. 자세한 내용은 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>

설명

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

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

<%@ Page validateRequest="false" %>

애플리케이션에 대 한 요청 유효성 검사를 사용 하지 않도록 설정, 수정 하거나 설정 하 여 애플리케이션에 대 한 Web.config 파일을 만든 해야 합니다는 validateRequest 특성을 pages 섹션을 false다음 예제에서와 같이:

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

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

참고

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

생성자

HttpRequestValidationException()

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

HttpRequestValidationException(String)

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

HttpRequestValidationException(String, Exception)

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

속성

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)

메서드

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
사용되지 않음.

예외에 대한 serialize된 데이터가 들어 있는 예외 상태 개체가 만들어지도록 예외가 serialize될 때 발생합니다.

(다음에서 상속됨 Exception)

적용 대상