码迷,mamicode.com
首页 > 其他好文 > 详细

tomcat 绑定域名 防止被恶意域名所指

时间:2014-09-11 16:41:22      阅读:234      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   io   os   使用   ar   for   

看流量统计分析时,发现入口网址有其他域名。就点了一下,然后就震惊了,发现跟自己服务器内容一样。

被攻击了?挂马了?抓取了?然后就各种百度谷歌,发现也有遇到同样问题的童鞋:

 

bubuko.com,布布扣

总结出两点,要么是域名配置的问题,要么是服务器(tomcat)配置问题。最后看了下面大神的帖子解决了问题。

原文地址:http://www.zlong.org/tomcat-binding-domain-bound-to-prevent-malicious-domain/ 

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

<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 绑定域名 防止被恶意域名所指

标签:style   blog   http   color   io   os   使用   ar   for   

原文地址:http://www.cnblogs.com/shanliang/p/3966563.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!