2012-05-03 3 views
1

나는 간단하게 asp.net 웹 양식 페이지를 가지고 있으며, http 요청을 가로 채고, 쿼리 문자열에서 매개 변수를 가져오고, 확인하고, 매개 변수를 기반으로 요청을 리디렉션합니다.Request.Validation/Encode URL을 사용 안 함

최근에 로그에서 HttpRequestValidationException 오류가 발생했습니다. 이것은 우리가 가져 오는 URL이 인코딩되지 않았기 때문에 우리는 Request.Validation을 true로 설정했기 때문입니다.

이제이 오류가 발생하는 것을 멈추고 싶습니다.하지만 여전히 주사로부터 보호 받고 싶습니다. Request.Validation을 끄고 URL을 인코딩하기 전에 URL을 간단히 인코딩 할 수 있다고 생각했습니다. 이것이 유효한 해결책입니까? 또한 어떤 유형의 인코딩을 사용해야합니까? HTML 인코딩 또는 URL 인코딩? HTML 인코딩을 추측하는 것은 자바 스크립트 또는 SQL 삽입에 대해 보호하지 못합니다. 맞습니까?

미리 감사드립니다.

이제

답변

0

,이 오류

이 점점 중지하고자하는 어떤 이유가 점점 중지 하시겠습니까? 이것은 좋은 일입니다. 위험한 요청이 잡혔다는 것을 알려줍니다. 로그를 치는 것을 멈추고 싶다면 예외를 삼가 해보십시오. 이것은 또한 여전히 다른 모든 예외를 로그의 장점이있다

void Application_Error(object sender, EventArgs e) 
{ 

    Exception exc = Server.GetLastError(); 
    if(exc.GetType() == typeof(HttpRequestValidationException)) 
    { 
     //ignore and don't write to log 
    } 

} 

:

이 트릭 (의 Global.asax를) 할 것입니다.

+0

요원이 요격하는 요청이 내 시스템에서 오는 것이므로 요청이 실제로 위험하다는 것을 알지 못합니다. 그들은 단지 인코딩되지 않았습니다. – user1373121