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错误无法跳转

相关推荐
w_zero_one18 分钟前
链表(2)
java·数据结构·链表
白杨尚青25 分钟前
C++入门篇(十一):string(中)——容量与增删改查:一篇吃透所有常用接口(万字详解)
java·开发语言·c++
SimonKing36 分钟前
SSE、WebSocket 连接丢 Redis 里?那可踩大坑了!
java·后端·程序员
倔强的石头10641 分钟前
【Linux指南】动静态库系列(九):动态库如何进入进程地址空间:从磁盘 .so 到共享内存映射
java·linux·服务器
TeamDev1 小时前
JxBrowser 9.5.2 版本发布啦!
java·前端·windows·chromium·混合应用·jxbrowser·浏览器控件
鬼手点金1 小时前
Claude Code示范案例-进阶学习路径
java·服务器·前端·学习·计算机视觉·前向传播
浪子明X1 小时前
用 CMake Presets 固定跨平台构建:从本地开发到 CI 的依赖一致性实践
java·spring·ci/cd
苏supper1 小时前
记一次Nacos鉴权报错unknown user,403排查|SecurityProxy源码,fastjson2扩展包缺失
java·后端
\光辉岁月/1 小时前
6.mybatisplus学习-BaseMapper、Service、常用注解
java·mybatis·mybatisplus
微信开发api1 小时前
基于WTAPI构建社群运营平台:自动拉群与会话承接链路设计
java·大数据·网络·数据库·微信·自动化