我们收到 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/