내 프로덕션 ASP.NET MVC 3 사이트에서 가끔 "잠재적으로 위험한 Request.Path 값이 클라이언트에서 감지되었습니다 (%). . " Windows 응용 프로그램 로그에서 처리되지 않은 예외가 발생했습니다.유효한 URL이있는 ASP.NET MVC "잠재적으로 위험한 Request.Path"
이들은 정규 사이트 사용 (즉, 임의의 웹 봇)에서 완벽하게 유효하지만 많은 요청은 유효한 지역 ISP 사용자의 것으로 보입니다. 예외의 요구 사항에
는, 요청 URL은 요청 경로와 다른 :
요청 URL : http://www.somesite.com/Images/Image Space.jpg
요청 경로 :/이미지/Imagehttp : // WWW. Space.jpgWithhttp와 somesite.com/Images/Image : Space.jpgSpace.jpg
통지 //www.somesite.com/Images/Image는 "요청 경로"에서, 어떤 장소가 있다는 " space "는 정확한 복사본으로 대체됩니다. 요청 URL의! 이 원인이 될 수있는 어떤
<img src="/Images/Image%20With%20Space.jpg" />
어떤 생각 : 사이트 내에서
은 실제 링크는 다음과 같습니다? Request.Path 및 Request.Url에 대한 설명서를 보려고했지만 왜 다른 것일 수 있는지 알 수 없습니다. 요청 URL을 직접 입력하면 리소스가 올바르게 표시됩니다.
업데이트 :
리퍼러 : 나는 IIS 7.0의 실패한 요청 추적 기능을 사용하여 고장 요청 중 하나의 추적을 얻을 수 있었다 Google 검색을
사용자 에이전트 : 모질라/5.0 (아이 패드, 맥 OS X와 같은 CPU OS 5_1_1) AppleWebKit/534.46 (게코 같은 KHTML) 버전/5.1 모바일/9B206 사파리/7534.48.3
RequestURL : http://www.somesite.com:80/Images/Image%20With%20Space.jpg
iOS 5.1.1에 수동으로 URL을 입력하면 이미지가 올바르게 표시됩니다. Google 이미지에서 이미지를 검색하면 이미지가 올바르게 표시됩니다. 여전히 성공적인 재생산은 없습니다.
운행하는 도중에 아래로 내가 볼 추적 :
MODULE_SET_RESPONSE_ERROR_STATUS 경고. MODULENAME = "RequestFilteringModule"통지 = "BEGIN_REQUEST"는 HttpStatus는 "404", HttpReason = "발견되지 않음"HttpSubStatus 요청에서 IIS '문서 404.11에 따라 필터링 모듈은 "11",
이다 = URL에 "이중 인코딩"오류가 있습니다. 예를 들어 http://www.somesite.com/Images/Image%2520With%2520Space.jpg과 같이 이중으로 인코딩 된 URL을 의도적으로 만들면 조작 된 요청 경로로 완료되는 이벤트 로그에 정확한 오류가 표시됩니다.
잘못된 형식의 요청 경로가 이벤트 로그에 오류가 ASP.NET 4.0에서 버그로 나타납니다.
그러나 처음부터 오류가 발생하는 이유는 설명하지 않습니다. 많은 수의 실패한 요청 로그를 확인했습니다. 유일한 공통점은 모두 AppleWebKit을 사용하고 있다는 것입니다.사파리의 버그일까요?
http://stackoverflow.com/questions/5682160/a-potentially-dangerous-request-path-value-was-detected-from-the-client 및 http://stackoverflow.com/questions/6025522/getting - 잠재적으로 위험한 요청 경로 값 - 클라이언트에서 발견되었습니다. – VJAI
URL이 유효하고 MVC/IIS가 조정이나 수정없이 처리합니다. 이는 간단한 요청 유효성 검사 문제가 아닙니다. 위의 오류에 표시된 요청 경로를주의 깊게 살펴보십시오. – ShadowChaser
저는 개인적으로 서버에 공백이있는 파일/페이지를 허용하지 않습니다. 나는 항상 공백을 -로 대체한다. –