首页 > 代码库 > tomcat 绑定域名 防止被恶意域名所指
tomcat 绑定域名 防止被恶意域名所指
看流量统计分析时,发现入口网址有其他域名。就点了一下,然后就震惊了,发现跟自己服务器内容一样。
被攻击了?挂马了?抓取了?然后就各种百度谷歌,发现也有遇到同样问题的童鞋:
总结出两点,要么是域名配置的问题,要么是服务器(tomcat)配置问题。最后看了下面大神的帖子解决了问题。
<Host name="www.fff.com" appBase="notexists" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"></Host>
其中的appBase是一个不存在的目录,所以www.fff.com请求时,不会访问你真实的应用。但这样只能禁止www.fff.com,不会禁止fff.com,所以还得加个name为fff.com的host,这样就太麻烦了,并且一些恶意域名是不可预知的,你并不知道会有多少域名绑定到你的IP,所以这种方式行不通。
上面的方式是默认允许,把禁止的列出来,变换下思路,默认禁止,将允许的列出来,这样不就OK了?所以有第二种方式:
<!-- default host is forbiden --> <Engine name="Catalina" defaultHost="forbiden"> <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/> <!-- allow hosts --> <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"></Host> <Host name="www.yourdomain.com" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"></Host> <Host name="192.168.1.3" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"></Host> <!-- forbiden host, the appBase is a not exists directory. If the requested domain is not in the above list of hosts where are allowed, then use this host. --> <Host name="forbiden" appBase="notexists" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"></Host> </Engine>
这里将Engine中的defaultHost设置为forbiden,下面有个name为forbiden的host,其appBase是个不存在的目录。再添加允许的host。所以,如果是未知的域名,则会使用forbiden的host,这样就访问不到真实应用目录了。
这只是我的解决方式,如果大家有更好的方法,可以交流以下。
原文地址http://www.iteye.com/topic/1112160
tomcat 绑定域名 防止被恶意域名所指
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。