Tomcat 防止被恶意域名解析

今天打开百度一搜我的网站,居然一个域名解析到了我的网站,无语了

我就用Whois查了一下 tihaoma.com 这个网站信息,但是这个人设置了隐私保护,弄不到联系方式


那怎么防止这样的事情呢

nginx也可以设置防止恶意解析,可以将它反向代理到无法访问的某谷歌网站,哈哈

我原来打算用nginx来解析静态资源,这样速度更快,但是最近没时间弄。

我想tomcat应该也可以,所以我就搜了一下,可以这样弄


打开server.xml文件,修改tomcat/conf/server.xml,找到engine元素,添加host元素,比如你想禁止 tihaoma.com,可以这样写: 

<Host name=" tihaoma.com"  appBase="notexists"  

    unpackWARs="true" autoDeploy="true"  

    xmlValidation="false" xmlNamespaceAware="false"></Host>  


其中的appBase是一个不存在的目录,所以 tihaoma.com请求时,不会访问你真实的应用。但是这样只是屏蔽了一个已知的,还有很多恶意域名是不可预知的,你并不知道会有多少域名绑定到你的IP,所以这种方式行不通。 

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

<!-- default host is forbiden -->  

<Engine name="Catalina" defaultHost="forbiden">  

    <Realm className="org.apache.catalina.realm.UserDatabaseRealm"  

        resourceName="UserDatabase"/>  

            

    <!-- allow hosts -->  
    <Host name="*********"  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,这样就访问不到真实应用目录了。 

添加新评论