2012-11-30 12 views
1

내 응용 프로그램 코드에서이 종류의 URL을 사용하여 한 페이지에서 다른 페이지로 사용자를 리디렉션합니다. http://myhost:8001/myapp/list.jsp?name=abc'd&age=10 여기서 이름은 사용자가 작은 따옴표를 포함 할 수있는 첫 번째 페이지에서 편집 할 수있는 동적 필드입니다.작은 따옴표가 들어있는 URL에 siteminder를 우회하는 방법은 무엇입니까?

이제는 모든 URL이 인증을 위해 siteminder를 사용할 때 문제가 발생합니다. siteminder는이 작은 인용문을 이러한 공격에 대한 시도로 생각하고이 URL을 차단하고 사용자가 일부 차단 된 페이지로 이동하게합니다.

이 문제를 어떻게 해결할 수 있습니까?

답변

5

URI 인코딩이 작동하지 않는다고 생각합니다. Siteminder가 알아낼만큼 똑똑합니다. base64와 같은 다른 종류의 인코딩. 아포스트로피를 다른 것으로 대체 한 다음 서버 측에서 다시 대체합니다. 또는 Siteminder 에이전트 구성에서 아포스트로피를 확인하는 BadCSSChar를 비활성화 할 수 있습니다. XSS 공격까지 사이트를 열 수 있으며 응용 프로그램에서 웹 페이지에 표시하기 전에 사용자가 제공 한 문자열을 확인해야합니다.

0

작은 따옴표를 % 27 (으)로 인코딩하는 URI를 사용해보십시오.

+0

. Siteminder는 여전히이 URL에 대한 액세스를 제한합니다. 이 주위에 어떤 방법이 있습니까? – TechnoCrat

0

당신이 코드가 양쪽 끝에서 실행하는 경우, 당신은 그것을 감지하고 송신 측에 '

사전 처리로 교체 할 수 있습니다 맨 마지막에 mySingleQuoteToken과 코드를 보낼 수 있습니다 - java.net를 호출하기 전에. URLEncoder : 수신 측에

url_new = url_old.replaceAll("'", "mySingleQuoteToken"); 

후 처리 - java.net.URLDecoder를 호출 한 후이 도움이되지 않았다

url_new = url_old.replaceAll("mySingleQuoteToken", "'"); 
+1

이 대답은 좋지 않습니다. 솔루션에 대해 자세히 설명 할 수있는 코드 샘플이 있습니까? – Kmeixner

관련 문제