【发布时间】:2019-03-20 21:17:20
【问题描述】:
今天我在 Tomcat 的 catalina.out 中发现了一个来自黑客的友好提示。发生异常后必须有一些泄漏,使用户能够写入 stderr 或 stdout。日志文件部分如下:
... 2018 年 10 月 16 日 12:40:21 AM org.apache.coyote.http11.AbstractHttp11Processor 进程 信息:解析 HTTP 请求标头时出错 注意:进一步出现的 HTTP 标头解析错误将在 DEBUG 级别记录。 java.lang.IllegalArgumentException:在方法名称中发现无效字符。 HTTP 方法名称必须是标记 在 org.apache.coyote.http11.InternalInputBuffer.parseRequestLine(InternalInputBuffer.java:136) 在 org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1028) 在 org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637) 在 org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316) 在 java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918) 在 org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) 在 java.lang.Thread.run(Thread.java:662)
你在 stderr 窗口上看到我了吗?
您是否也在浏览器窗口中看到了我?
com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException:键“PRIMARY”的重复条目“244790-85.25.210” 在 sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) 在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) 在 java.lang.reflect.Constructor.newInstance(Constructor.java:513) ...
我怀疑异常导致 stderr 处于打开状态,并且用户能够写入日志。我的机器是 Debian 8.7 和 Tomcat 7.077。
有谁知道这是怎么发生的???
【问题讨论】:
标签: java tomcat exception logfile