HttpRequestValidationException 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
클라이언트에서 보낸 요청 데이터에 위험할 수 있는 입력 문자열이 포함된 경우 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하여 요청 처리를 중단합니다. 요청이 중단 교차 사이트 스크립팅 공격 등의 애플리케이션의 보안을 손상 시킬 시도 나타낼 수 있습니다. 애플리케이션에 명시적으로 요청 중단과 관련 된 모든 입력 확인 것이 좋습니다. 그러나 다음 예제와 같이 지시문false
의 validateRequest
특성을 @ 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 |
오류의 |
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) |
적용 대상
.NET