tomcat设置预防host头攻击

tomcat设置预防host头攻击

    • [1 host攻击](#1 host攻击)
    • [2 解决办法](#2 解决办法)

1 host攻击

就是我请求的时候 改变header中的host的值 也能访问成功

正确的

java 复制代码
curl -H "Host: www.yq.com" http://www.yq.com:8080/

错误的 给一个百度的域名

bash 复制代码
   curl -H "Host: www.baidu.com" http://www.yq.com:8080/

这样也能访问成功 但是这样是不正确的,正确的应该访问不了 避免产生安全隐患

2 解决办法

修改tomcat的server.xml配置

bash 复制代码
 <Engine name="Catalina" defaultHost="invalid.host">
      <Realm className="org.apache.catalina.realm.LockOutRealm">
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
               resourceName="UserDatabase"/>
      </Realm>
<Host name="www.yq.com" appBase="webapps"
                  unpackWARs="true" autoDeploy="true">
 <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />
       <Alias>192.168.18.60</Alias>
       <Alias>127.0.0.1</Alias
</Host>
<Host name="invalid.host" appBase="webapps/none" unpackWARs="true" autoDeploy="false">
    <Valve className="org.apache.catalina.valves.ErrorReportValve" errorCode.400="Invalid Host" />
</Host>
</Engine>

修改地方

1 首先就是Engine 的defaultHost不使用默认的localhost 而是自定义一个Host,这样就能统一处理这个错误

2 修改Host 的name 把localhost改成域名地址 然后加上白名单Alias就是本机的ip和本地

3 定义一个错误的Host

修改以后重启就行

相关推荐
q***98521 分钟前
什么是Spring Boot 应用开发?
java·spring boot·后端
带刺的坐椅2 分钟前
Solon AI 开发学习4 - chat - 模型实例的构建和简单调用
java·ai·chatgpt·solon
hadage2334 分钟前
--- JavaScript 的一些常用语法总结 ---
java·前端·javascript
懂得节能嘛.18 分钟前
【Java动态线程池】Redis监控+动态调参
java·开发语言·redis
豆奶特浓625 分钟前
Java面试模拟:当搞笑程序员谢飞机遇到电商秒杀与AIGC客服场景
java·spring boot·微服务·面试·aigc·高并发·电商
明洞日记27 分钟前
【设计模式手册013】命令模式 - 请求封装的优雅之道
java·设计模式·命令模式
方白羽35 分钟前
Android多层嵌套RecyclerView滚动
android·java·kotlin
uup1 小时前
Java 中 ArrayList 线程安全问题
java
uup1 小时前
Java 中日期格式化的潜在问题
java
老华带你飞1 小时前
海产品销售系统|海鲜商城购物|基于SprinBoot+vue的海鲜商城系统(源码+数据库+文档)
java·前端·数据库·vue.js·论文·毕设·海鲜商城购物系统