2012-07-27 3 views
3

자바 웹 애플리케이션에 대한 HTTP DELETE 요청을 자바 스크립트에서 수행합니다. 웹 앱은 저지을 사용하여 URL을 발송합니다. 까다로운 점은 슬래시가 포함 된 경로 매개 변수를 사용하고 있습니다 (예 : "XX/6666"). 부두 (maven plugin)을 실행하면 정상적으로 작동하지만 프로덕션 서버 (Tomcat)를 실행하면 그렇지 않습니다. 즉 이 표시됩니다.HTTP 요청에서 슬래시를 이스케이프 처리합니다.

슬래시는 내 요청 URL이

같은이가 HTTP 사양에서 허용 http://.../4776/shipmentOrders/XX%2F6666

삭제 보이는 있도록 %의 2 층을 사용하여 탈출하고 가능한 부두와 Tomcat이 다르게 이러한 해석이다?

+0

요청 코드를 표시 할 수 있습니까? – Raffaele

답변

10

Tomcat (버전 5, 6 및 7)은 의도적으로 경로에서 % 2f를 사용하여 디렉토리 트래버 설 공격을 방지합니다. org.apache.tomcat.util.buf를 설정하여이 보호 기능을 해제 할 수 있습니다. UDecoder.ALLOW_ENCODED_SLASH = true. 나는 이것을 개인적으로 테스트하지는 않았지만 넷에서 다른 사람들이 그것을 해결했다고 주장한다. 그러나 Tomcat 앞의 웹 서버는 URL을 가로 채고 다시 쓰면서 자동으로 % 2f를 슬래시로 디코딩 할 수 있습니다.

참조 : http://tomcat.apache.org/tomcat-7.0-doc/config/systemprops.html

+0

이후로이 문제를 해결 했으므로이 문제를 확인하지는 않겠습니다. 그러나 매우 성공적이어서 답변을 수락 할 것입니다. –

2

예 : 허용되지만 일부 서버는 보안상의 이유로 요청을 거부 할 수 있습니다.

관련 문제