las*_*koh 4 tomcat unsafe pipe
这是我尝试在我的 java web 应用程序中发送带有 URL 的 GET 请求时的错误:我的本地机器 url 看起来像这样http://localhost:8080/test?param1=1|2¶m2=3343434
2017 年 2 月 20 日下午 4:51:19 org.apache.coyote.http11.AbstractHttp11Processor 进程信息:解析 HTTP 请求标头时出错 注意:进一步发生的 HTTP 标头解析错误将在调试级别记录。java.lang.IllegalArgumentException: 在请求目标中发现无效字符。有效字符在 org.apache.coyote.http11.AbstractNioInputBuffer.parseRequestLine(AbstractNioInputBuffer.java:283) 处 org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:10) 处的 RFC 7230 和 RFC 3986 中定义org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:684) 在 org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1524) 在 org.apache.tomcat.util。 net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:
我想问一下是否可以在不更改 Apache Tomcat 版本或更改现有代码的情况下解决此问题。我想知道 Apache Tomcat 配置文件是否能够禁用或绕过此检查?
过去一天我一直在为这件事伤脑筋。我尝试在 tomcat 中使用 mod_rewrite 来尝试对 '|' 进行 urlencode 在输入时,但错误仍然存在,因为它在到达重写引擎之前被抛出。所以运气不佳。我发现的唯一两个可行的解决方案是:
自 Tomcat 8.5.8 起,这不再有意为之。
请求 url 中存在包含无效字符的安全错误。
见https://bugzilla.redhat.com/show_bug.cgi?id=1397484
将管道编码为 %7C
| 归档时间: |
|
| 查看次数: |
6612 次 |
| 最近记录: |