error-handling - 禁用 Jetty 中的默认堆栈跟踪错误响应

标签 error-handling jetty

我们收到 PenTest 调查结果,指出 400“无法解析”Jetty 错误(如下)给出的堆栈跟踪为攻击者提供了太多信息,我们应该禁用该部分错误响应。

我正在阅读 documentation on error handling但我对 eclipse 和 jetty 都很陌生。我不清楚我应该做什么。

例如,我认为我在哪里进行更改取决于我们是否使用 WebAppContext,但我不知道如何确定我们是否正在使用它。

我所做的就是在 WEB_INF/web.xml 中找到我们的 web.xml 文件

这是错误响应:堆栈跟踪继续进行得更远,但为了简洁起见,我在此处进行了缩短。

HTTP ERROR 400 Unable to parse URI query
URI:    
STATUS: 400
MESSAGE:    Unable to parse URI query
SERVLET:    Portal
CAUSED BY:  org.eclipse.jetty.http.BadMessageException: 400: Unable to parse URI query
CAUSED BY:  org.eclipse.jetty.util.Utf8Appendable$NotUtf8Exception: Not valid UTF8! byte Bf in state 0
Caused by:

org.eclipse.jetty.http.BadMessageException: 400: Unable to parse URI query
    at org.eclipse.jetty.server.Request.getParameters(Request.java:449)
    at org.eclipse.jetty.server.Request.getParameter(Request.java:1059)
    at javax.servlet.ServletRequestWrapper.getParameter(ServletRequestWrapper.java:194)
    at com.gce2000.common.servlet.CrossScriptingFilter$XSSRequestWrapper.getParameter(CrossScriptingFilter.java:94)

最佳答案

在您的 WEB-INF/web.xml 中,只需指定一个可以处理您的错误的 HTML(或 Servlet,或 JSP)即可。

<web-app>
  <error-page>
    <!-- Bad Request -->
    <error-code>400</error-code>
    <location>/error-bad-request.html</location>
  </error-page>
</web-app>

您可以声明状态代码和异常的错误页面。

您可能还想声明全局(确保您的 WEB-INF/web.xml 使用 Servlet 3.0 或更高版本)

<web-app>
  <error-page>
    <location>/error-general.html</location>
  </error-page>
</web-app>

关于error-handling - 禁用 Jetty 中的默认堆栈跟踪错误响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62331132/

相关文章:

json - 如何在JSON响应中产生错误消息

java - Spring AOP 为 Java 8 提供 IllegalArgumentException

jetty - 在 Jetty runner 的帮助下启动服务器

jetty - 如何在 Debian Wheezy 上的 Jetty 8 中启用 JSP 支持?

java - jetty 服务器 9.1 同一服务器实例中的多个嵌入端口和应用程序

java - 这不应该起作用吗?显示来自 servlet 的错误消息

c++ - Boost错误代码人类可读的描述

node.js - Express 中的嵌套错误处理

vba - 捕获导致错误的变量/对象名称

intellij-idea - 如何让 jrebel、jetty、gradle 和 intellij idea 一起工作