2017-02-20 3 views
4

다음은 오류입니다 : 내 로컬 컴퓨터의 url은이 http://localhost:8080/test?param1=1|2&param2=3343434아파치 톰캣 8.0.41이 URL GET 요청에서 파이프 문자를 허용하도록 만드는 방법은 무엇입니까? 내 자바 웹 응용 프로그램의 URL로 GET 요청을 보내려고 할 때

2017년 2월 20일 오후 4시 51분 19초의 조직처럼 보인다. apache.coyote.http11.AbstractHttp11Processor 프로세스 INFO : HTTP 요청 헤더 구문 분석 오류가 발생했습니다. 참고 : HTTP 헤더 구문 분석 오류가 DEBUG 수준에서 계속 기록됩니다. java.lang.IllegalArgumentException : 요청 대상에서 유효하지 않은 문자가 발견되었습니다. 유효한 문자는 RFC 7230 및 RFC 3986 org.apache.coyote.http11.AbstractHttp11Processor.process에서 org.apache.coyote.http11.AbstractNioInputBuffer.parseRequestLine (AbstractNioInputBuffer.java:283) (에서 AbstractHttp11Processor.java:1017에 정의되어 있습니다) at org.apache.coyote.AbstractProtocol $ AbstractConnectionHandler.process (AbstractProtocol.java:684) at org.apache.tomcat.util.net.NioEndpoint $ SocketProcessor.doRun (NioEndpoint.java:1524) at org.apache (알 수없는 소스) at java.util.concurrent.ThreadPoolExecutor $ Worker.run (알 수없는 소스).) at org.apache.tomcat.util.threads.TaskThread $ WrappingRunnable.run (TaskTh 내가 묻고 싶다 read.java:61) java.lang.Thread.run에서 (알 수없는 소스)

은 아파치 톰캣 버전을 변경하지 않고이 문제를 해결하거나 기존 코드를 변경 할 수 있습니다 . 아파치 톰캣 설정 파일이이 검사를 사용하지 못하게하거나 무시할 수 있는지 궁금합니다.

답변

4

나는 지난 하루 동안 내 머리를 두드렸다. 나는 urlencode 시도에 바람둥이에서 mod_rewrite를 사용하여 시도했다 '|' 입력시에는 오류가 발생하지만 다시 쓰기 엔진에 도달하기 전에 throw됩니다. 따라서 운이 없습니다. 내가 찾은 유일한 두 가지 작업 솔루션은 다음과 같습니다

  1. 장소 프록시 합리적인, IllegalArgumentException를 throw하지 않고 파이프를 urlencode 수 있습니다 바람둥이 (nginx를)하기 전에.
  2. Tomcat 버전을 변경하십시오. (모두가 파이프로 합당한 IllegalArgumentExceptions를 던지지는 않습니다.)이 글을 쓰고있는 시점에서 최신 8.5.11에서 합당한 IllegalArgumentException을 발생 시키지만, 8.5.5가 제대로 작동하는지 확인할 수 있습니다.
+0

는 IllegalArgumentException 크래시 아니다 %로 파이프하지만 유효하지 않은 데이터의 제거를 참조 resonable. 도미니크 대답을 참조하십시오. – Seven

+0

@ Seven : 나는 스위스의 원자 시계처럼 정확하기 위해 답장을 편집했다. –

3

Tomcat 8.5.8부터 더 이상 작동하지 않습니다.

요청 URL에 유효하지 않은 문자가있는 보안 버그가 있습니다.

https://bugzilla.redhat.com/show_bug.cgi?id=1397484

인코딩 7C

+0

uri를 필터링하여 바람둥이가 400 오류와'IllegalArgumentException'을 반환하기 전에 인코딩되도록 할 수 있습니까? 누군가가 파이프 문자를 URL에 입력하면 400이 아닌 단순한 404를 사용하고 싶습니다. – theyuv

관련 문제