今天,我在Tomcat的catalina.out中发现了一个来自黑客的友好提示。发生异常之后,必须有一些泄漏,该异常使用户能够写入stderr或stdout。日志文件的部分如下:
... 2018年10月16日上午12:40:21 org.apache.coyote.http11.AbstractHttp11Processor进程 INFO:解析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(本机方法)处 在sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) 在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) 在java.lang.reflect.Constructor.newInstance(Constructor.java:513) ...
我怀疑异常使stderr处于打开状态,并且用户能够写入日志。我的机器是带有Tomcat 7.077的Debian 8.7。
有人知道这怎么可能吗?
答案 0 :(得分:0)
“ 看到了我”行是由Tomcat示例Web应用程序中的某些页面打印的。 (该Web应用程序默认情况下存在。如果使用Tomcat服务器进行生产,则应将其删除。)
要阅读的东西: