http://aaronlong31.iteye.com/blog/1123260

今天公司一台服务器被很多恶意域名绑定了,电信的要我们赶紧处理,否则封IP。 
服务器使用的是tomcat,上谷歌搜了很多方法,都是说绑定自己的域名,没说如何不让其他域名绑定。 
开始我想了一种方法:修改tomcat/conf/server.xml,找到engine元素,仿照已有的localhost,添加host元素,比如你想禁止www.fff.com,可以这样写: 
<!--more-->

  1. <Host name="www.fff.com"  appBase="notexists"
  2. unpackWARs="true" autoDeploy="true"
  3. xmlValidation="false" xmlNamespaceAware="false"></Host>

其中的appBase是一个不存在的目录,所以www.fff.com请求时,不会访问你真实的应用。但这样只能禁止www.fff.com,不会禁止fff.com,所以还得加个name为fff.com的host,这样就太麻烦了,并且一些恶意域名是不可预知的,你并不知道会有多少域名绑定到你的IP,所以这种方式行不通。

上面的方式是默认允许,把禁止的列出来,变换下思路,默认禁止,将允许的列出来,这样不就OK了?所以有第二种方式:

  1. <!-- default host is forbiden -->
  2. <Engine name="Catalina" defaultHost="forbiden">
  3. <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
  4. resourceName="UserDatabase"/>
  5. <!-- allow hosts -->
  6. <Host name="localhost"  appBase="webapps"
  7. unpackWARs="true" autoDeploy="true"
  8. xmlValidation="false" xmlNamespaceAware="false"></Host>
  9. <Host name="www.zh56.mobi"  appBase="webapps"
  10. unpackWARs="true" autoDeploy="true"
  11. xmlValidation="false" xmlNamespaceAware="false"></Host>
  12. <Host name="222.73.227.231"  appBase="webapps"
  13. unpackWARs="true" autoDeploy="true"
  14. xmlValidation="false" xmlNamespaceAware="false"></Host>
  15. <!-- forbiden host, the appBase is a not exists directory.
  16. If the requested domain is not in the above list of hosts where are allowed, then use this host.-->
  17. <Host name="forbiden"  appBase="notexists"
  18. unpackWARs="true" autoDeploy="true"
  19. xmlValidation="false" xmlNamespaceAware="false"></Host>
  20. </Engine>

这里将Engine中的defaultHost设置为forbiden,下面有个name为forbiden的host,其appBase是个不存在的目录。再添加允许的host。所以,如果是未知的域名,则会使用forbiden的host,这样就访问不到真实应用目录了。

tomcat 绑定域名 防止恶意域名绑定的更多相关文章

  1. 阿里云服务器之Tomcat环境搭建以及域名绑定

    上一步主要主要讲解在服务器中建立自己的hexo博客环境,最后达到可以远程访问,以及远程git推送到github.这章主要讲解Tomcat环境的搭建,以及域名解析.到这里你的服务器以及可以被全世界的人民 ...

  2. Tomcat 配置 项目 到tomcat目录外面 和 域名绑定访问(api接口、前端网站、后台管理网站)

    先停止tomcat服务 1.进入apache-tomcat-7.0.68/conf/Catalina/localhost(如果之前还都没有启动过tomcat,是不会有此目录的,先启动一次再关闭,会自动 ...

  3. Tomcat 8.5 配置 域名绑定

    1.修改Tomcat的Server.xml两处地方即可: a) b)

  4. Tomcat配置多个域名绑定到不同项目

    <Host name="www.dn-serve.com" appBase="webapps" unpackWARs="true" a ...

  5. 域名解析与多域名绑定多个Tomcat项目

    第一步.域名解析 1.登录阿里云的服务器地址:https://www.aliyun.com/   新手礼包地址:https://s.click.taobao.com/as9o9Ox 2.点击控制台 3 ...

  6. Tomcat绑定多个IP地址 多域名绑定

    http://blog.csdn.net/stevenyanzhi/article/details/6029776 Tomcat绑定多个IP地址 如果一台服务机上有多个IP地址又有多个工程如何一个IP ...

  7. nginx反向代理+tomcat域名绑定

    今天在用nginx做反向代理时,由于一个tomcat下有多个应用,因此要在tomcat做域名绑定.tomcat启动后,通过域名+端口是可以访问到页面的,但是通过nginx转发后就不能访问了,因此tom ...

  8. tomcat域名绑定设置

    域名绑定分为单域名绑定.多域名绑定,配置主要涉及到tomcat目录下conf/server.xml文件 一.单域名绑定 1.修改server.xml 大约105行的内容(不是必须修改,如果只是绑定一个 ...

  9. Tomcat域名绑定

    域名绑定与虚拟目录设置: conf/server.xml 的修改方式如下: 单个域名绑定: 原始: <Engine name="Catalina" defaultHost=& ...

随机推荐

  1. Flask之勾子,错误捕获以及模板语法

    请求勾子 在客户端和服务器交互的过程中,有些准备工作或扫尾工作需要处理,比如: 在请求开始时,建立数据库连接: 在请求开始时,根据需求进行权限校验: 在请求结束时,指定数据的交互格式: 为了让每个视图 ...

  2. PAT 1092 To Buy or Not to Buy

    1092 To Buy or Not to Buy (20 分)   Eva would like to make a string of beads with her favorite colors ...

  3. Linux下输入某些命令时会提示:bash:command not found

    首先,查看$PATH中是否包含了这些命令. $PATH:决定了shell到哪些目录中去寻找命令或程序,PATH值是一系列的目录.当运行程序时,linux到这些目录下搜索进行编译链接. 格式: PATH ...

  4. Ubuntu用android-ndk-r15c编译boost_1_65_1

    方法一(最简单的): 下载:android-ndk-r16-beta1 然后下载Boost-for-Android:https://github.com/moritz-wundke/Boost-for ...

  5. PHP socket服务端与客户端的简易通信

    今天学习socket通信的同时,顺便整理了下以前初识socket的知识. 现在关于php的socket通信,有些框架已经十分成熟了,比如  swoole 和 workerman,这两个大家可以学习学习 ...

  6. redis不重启,切换RDB备份到AOF备份

    确保redis版本在2.2以上 [root@pyyuc /data ::]#redis-server -v Redis server v= sha=: malloc=jemalloc- bits= b ...

  7. [Leetcode 15]三数之和 3 Sum

    [题目] Given an array nums of n integers, are there elements a, b, c in nums such that a + b + c = 0? ...

  8. 长字符串换行word-break

    word-break: break-all,每个字符换行 word-break: break-word按照单词换行,长字符之间换行

  9. [ZJOI2007]最大半联通子图

    这个题,翻译一下题面,就是一个连通图,找他的最长链的数量... 所以说方法就比较明显了:tarjan缩点+拓扑+DP 注意也是本题唯一坑点,拓扑DP的时候要考虑重复边的情况... 呆码: #inclu ...

  10. shell中获取时间

    获得当天的日期 date +%Y-%m-%d 输出: 2011-07-28 将当前日期赋值给DATE变量DATE=$(date +%Y%m%d) 有时候我们需要使用今天之前或者往后的日期,这时可以使用 ...