Tomcat8版本以上配置自定义400错误页面

问题:当请求URL包含特殊字符时,Tomcat会自动拦截并返回400状态码页面,暴露了tomcat的版本信息,这是很严重的安全漏洞。

java.lang.IllegalArgumentException: 在请求目标中找到无效字符。有效字符在RFC 7230和RFC 3986中定义

解决办法:

  1. 屏蔽打印的异常和Tomcat版本信息,在Tomcat -> conf -> server.xml中加入如下配置:
xml 复制代码
`<Valve className="org.apache.catalina.valves.ErrorReportValve" showReport="false" showServerInfo="false" />`

再次请求就只会打印一个标题了,屏蔽了重要信息。

  1. 重定向到自定义的400_error.html页面,在Tomcat -> conf -> server.xml中加入如下配置:
xml 复制代码
<Valve className="org.apache.catalina.valves.ErrorReportValve" errorCode.400="webapps/ROOT/400_error.html"/>

在webapps -> ROOT项目下新建一个自定义的HTML页面,例如我的是400_error.html

再次请求就会重定向到你的自定义页面了。

参考大佬的文章链接:
tomcat8 url包含|等特殊字符报错400的问题
tomcat9 400错误无法跳转

相关推荐
AC赳赳老秦1 分钟前
时间开销自动统计:OpenClaw 记录工作任务时长、分析时间分配、给出优化建议
java·大数据·开发语言·python·自动化·deepseek·openclaw
名侦探72226 分钟前
构建 Agent 的五大难点与解决方案
java·大数据·人工智能
Demons_kirit29 分钟前
图库原理(以阿里云OSS为案例)
java·阿里云·云计算
SimonKing33 分钟前
那个号称"对标 Spring"的国产框架 Solon,到底行不行?
java·后端·程序员
Lethehong34 分钟前
飞算Java:从需求梳理到风险闭环,搭建云盾企业信息安全与权限管理平台
java·开发语言
霸道流氓气质38 分钟前
SpringBoot中使用字典驱动的动态路由示例
java·spring boot·后端
学计算机的计算基1 小时前
操作系统八股文:进程与线程全面梳理(附调度算法+IPC+锁机制)
java·算法
wuqingshun3141591 小时前
请描述简单工厂模式的工作原理
java·简单工厂模式
大不点wow1 小时前
Spring 中 @Bean、@Component 与 @Configuration 的作用及底层逻辑
java·spring
IvorySQL2 小时前
云环境下PostgreSQL的Cgroup内存管理实践
java·数据库·postgresql