> 백엔드 개발 > C#.Net 튜토리얼 > asp.net에서 '클라이언트에서 감지된 잠재적으로 위험한 Request.Form 값' 오류 해결

asp.net에서 '클라이언트에서 감지된 잠재적으로 위험한 Request.Form 값' 오류 해결

伊谢尔伦
풀어 주다: 2016-11-24 16:15:11
원래의
1170명이 탐색했습니다.

양식을 제출할 때 asp.net은 "클라이언트에서 잠재적으로 위험한 Request.Form 값이 감지되었습니다(...)"라는 메시지를 표시합니다. asp.net의 요청 확인 기능은 XSS 공격에 대해 특정 수준의 보호를 제공합니다. asp.net의 요청 확인은 기본적으로 활성화됩니다. 이는 다양한 버전의 .net에 대한 솔루션을 제공합니다.

ASP.NET 2.0 일반 솔루션

옵션 1:

다음과 같이 .aspx 파일의 페이지 항목에 ValidateRequest="false"를 추가합니다.

<%@ Page ValidateRequest="false" Language="C#" AutoEventWireup="true" CodeFile="test2.aspx.cs" Inherits="test2" %>

옵션 2:

web.config 구성 파일 수정

 <system.web> 
      <pages validateRequest="false" >   
      </pages>   
  </system.web>
로그인 후 복사

요약: 우리는 verifyRequest가 유효성 검사를 해제한다는 것을 알고 있습니다. 이는 bold 값과 같은 태그를 사용하여 제출하는 것을 의미합니다. , ASP.NET은 오류를 보고하지 않습니다. 여기서는 옵션 1을 사용하는 것이 좋습니다. 옵션은 test.aspx 페이지만 수정하고 옵션 2를 사용하면 전체 솔루션이 ValidateRequest="false"가 되기 때문입니다.

asp.net 4.0에 대한 솔루션

4.0과 2.0의 방법은 동일하지만 .Net Framework 4.0부터 asp.net이 요청 매개 변수를 강제로 감지하기 시작한다는 점에 유의해야 합니다. 보안을 유지하며 Web.config를 수정하여 버전 2.0 모드를 복원할 수 있습니다.

방법은 다음과 같습니다.

Web.config를 수정하고 requestValidationMode="2.0" 속성 값을 추가합니다.

 <system.web>
      <httpRuntime requestValidationMode="2.0" />
      <pages validateRequest="false"></pages>
  </system.web>
로그인 후 복사

4.0에는 requestValidationMode가 추가로 있습니다. 이게 무슨 뜻이야?

requestValidationMode에는 두 가지 값이 있습니다.

2.0은 웹 페이지에 대한 요청 확인만 활성화합니다. 활성화 또는 비활성화 여부는 verifyRequest에 따라 다릅니다.

4.0 기본값입니다. 모든 HTTP 요청은 요청 확인을 활성화합니다. 이는 웹 페이지뿐만 아니라 쿠키 등도 의미합니다. 이제 verifyRequest 값에 관계없이 활성화됩니다.

requestValidationMode="4.0"이 강제로 활성화되므로 .NET Framework 4.0에서는 단지 verifyRequest를 설정하는 것만으로는 요청 유효성 검사를 끌 수 없습니다. 또한 requestValidationMode를 2.0으로 설정해야 합니다.


관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿