防止恶意解析 - 禁止通过ip直接访问到网站

时间:2022-10-11 17:00:40

 

什么是恶意解析?
    一般情况下,要使域名能访问到网站需要两步,第一步,将域名解析到网站所在的主机,第二步,在web服务器中将域名与相应的网站绑定。但是,如果通过主机IP能直接访问某网站,那么把域名解析到这个IP也将能访问到该网站,而无需在主机上绑定,也就是说任何人将任何域名解析到这个IP就能访问到这个网站。可能您并不介意通过别人的域名访问到您的网站,但是如果这个域名是未备案域名呢?一旦被查出,封IP、拔线甚至罚款的后果都是需要您来承担的。某些别有用心的人,通过将未备案域名解析到别人的主机上,使其遭受损失,这是一种新兴的攻击手段
apache设置禁止使用IP访问网站的实现方法
在用apache搭建的WEB服务器的时候,如何想只能通过设定的域名访问,而不能直接通过服务器的IP地址访问呢,有以下两种方法可以实现(当然肯定还会有其他方法可以实现),都是修改httpd.conf文件来实现的,下面举例说明。 

方法一:在httpd.conf文件最后面,加入以下代码 
NameVirtualHost 221.*.*.* 
<VirtualHost 221.*.*.*> 
ServerName 221.*.*.* 
<Location /> 
Order Allow,Deny 
Deny from all 
</Location> 
</VirtualHost>
 
    
<VirtualHost 221.*.*.*> 
DocumentRoot "/www/web" 
ServerName www.phpzixue.cn 
</VirtualHost> 
说明:蓝色部分是实现拒绝直接通过221.*.*.*这个IP的任何访问请求,这时如果你用221.*.*.*访问,会提示拒绝访问。红色部分就是允许通过www.phpzixue.cn这个域名访问,主目录指向/www/web(这里假设你的网站的根目录是/www/web) 

方法二:在httpd.conf文件最后面,加入以下代码 
NameVirtualHost 221.*.*.* 
<VirtualHost 221.*.*.*> 
DocumentRoot "/www/test" 
ServerName 221.*.*.* 
</VirtualHost> 
     
<VirtualHost 221.*.*.*> 
DocumentRoot "/www/web" 
ServerName www.phpzixue.cn 
</VirtualHost> 
说明:蓝色部分是把通过221.*.*.*这个IP直接访问的请求指向/www/test目录下,这可以是个空目录,也可以在里面建一个首页文件,如index.hmtl,首面文件内容可以是一个声明,说明不能通过IP直接访问。红色部分的意思跟方法一是一样的。 
注:修改后需要重启apache