2008-10-15 2 views
0

내 asp.net mvc app에서 특정 URL이 유효한 응답을 반환하는지 확인하고 싶습니다. 그 때문에 URL을 HttpWebRequest.GetResponse()를 테스트하는 메소드로 보냅니다.매개 변수로 URL이 가로 챌 수 있습니다.

내 dev 서버 (vs2008)에서 잘 작동합니다. 그러나 프로덕션 서버에 배포하면 잘못된 요청이 반환됩니다. 이 메서드는 결코 적중되지 않으며 내 asp.net 사용자 정의 오류 페이지는 사용되지 않습니다.

어떤 아이디어가 있습니까?

답변

1

미래에 이것을 읽는 사용자 : http : // 부분을 제거하고 HttpUtility.UrlPathEncode를 사용하여 경로를 인코딩하고 마지막 부분을 {* uri}로 간주하는 경로를 지정합니다. 이렇게하면 매개 변수에 /를 사용할 수 있습니다.

그런 다음 checkUri http : //를 추가하여 uri를 다시 만든 다음이 uri의 호스트가 예상 한 호스트 (예 : request.url.host)인지 확인합니다.

내가 생성 한 Uri와 함께 httpwebrequest를 만들고 응답 요청을 확인합니다.

+0

내가 감사해야 할 필요가있는 것! – Webjedi

+0

그것이 당신을 도운 데 도움이되는 것을 보았을 때, 나는 대답으로 내 자신의 반응을 받아 들일 수 있다고 생각했습니다. –

0

아마도 ASP.NET의 ValidateRequest 기능을 사용하고 계십니까? ValidateRequest = "false"매개 변수를 갖도록 aspx 파일의 첫 번째 행을 수정하여 문제의 페이지에 대해이 기능을 비활성화 할 수 있습니다.

예 :

<%@ Page Language="C#" CodeFile="Default.aspx.cs" Inherits="_Default" ValidateRequest="false" %> 

당신은 아마 요청 유효성 검사가 XSS 공격을 방지하는 데 도움으로,하지만 그 상태로두고 싶지 않다. HttpUtility.UrlEncode를 사용하면 아직 시도하지 않은 경우 시도해 볼 가치가 있습니다.

관련 문제