이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 17891|회답: 0

[ASP.NET] MVC가 클라이언트로부터 잠재적으로 위험한 요청을 감지하는 우회 방법

[링크 복사]
게시됨 2016. 11. 25. 오후 4:33:35 | | | |


[HttpRequestValidationException (0x80004005): 클라이언트로부터... Request.Form 값에서 잠재적으로 위험한 Request.Form 값이 감지됩니다. ]
System.Web.HttpRequest.ValidateString(String s, String valueName, String collectionName)



1. 사실, 오류는 명확히 설명되었고 해답은 다음과 같이 제시된다:


클라이언트에서 잠재적으로 위험한 Request.Form 값이 감지되었습니다(txtUEditor="<p>a</p>").

설명: 요청 검증 과정에서 잠재적으로 위험한 클라이언트 입력 값을 감지하여 요청 처리가 중단되었습니다. 이 값은 크로스 사이트 스크립팅 공격과 같은 애플리케이션 보안을 침해하려는 시도가 있을 수 있음을 나타낼 수 있습니다. 페이지가 애플리케이션 요청 검증 설정을 덮어쓰도록 하려면, httpRuntime 구성 섹션에서 requestValidationMode 속성을 requestValidationMode="2.0"으로 설정하세요. 예시: <httpRuntime requestValidationMode="2.0" />. 이 값이 설정되면, <pages> 페이지 디렉티브나 구성 섹션에서 validateRequest="false"를 설정하여 요청 검증을 비활성화할 수 있습니다. 하지만 이 경우에는 애플리케이션이 모든 입력을 명시적으로 검사하는 것이 강력히 권장됩니다. 자세한 내용은 http://Go.microsoft.com/fwlink/?LinkId=153133 참조.

예외 세부사항: System.Web.HttpRequestValidationException: 클라이언트에서 잠재적으로 위험한 Request.Form 값이 감지되었습니다 (txtUEditor="<p>a"a</p>).

2. 또 다른 방법은 web.config의 페이지 섹션에서 설정하는 것입니다. 예를 들면:




하지만 이 방법은 좋지 않다. 너무 폭력적이기 때문이다. 프로젝트 전체의 모든 페이지가 제출된 콘텐츠를 더 이상 검증하지 않게 만들고, 보안도 크게 떨어진다.

3. 권장 실천법:
액션에 속성:[ValidateInput(false])을 추가하면, 페이지가 제출물을 검증하는 것만 막고 다른 페이지에는 영향을 주지 않습니다.




참고: Request.Form["XXX"]를 이런 방식으로 얻어도 잠재적으로 위험한 이상 현상이 감지될 수 있으니, 원하는 데이터를 컨트롤러 매개변수에 반드시 입력하세요! !




이전의:EasyUI 검증은 비밀번호와 새 비밀번호가 일치함을 확인해 줍니다
다음:ueditor의 다중 이미지 업로드는 온라인 관리 및 이미지 검색 탭 기능을 제거합니다
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com