防止恶意解析——禁止通过IP直接访问网站

一、什么是恶意解析

一般情况下,要使域名能访问到网站需要两步,第一步,将域名解析到网站所在的主机,第二步,在web服务器中将域名与相应的网站绑定。但是,如果通过主机IP能直接访问某网站,那么把域名解析到这个IP也将能访问到该网站,而无需在主机上绑定,也就是说任何人将任何域名解析到这个IP就能访问到这个网站。可能您并不介意通过别人的域名访问到您的网站,但是如果这个域名是未备案域名呢?一旦被查出,封IP、拔线甚至罚款的后果都是需要您来承担的。某些别有用心的人,通过将未备案域名解析到别人的主机上,使其遭受损失,这是一种新兴的攻击手段。

二、Apache服务

在用apache搭建的WEB服务器的时候,如何想只能通过设定的域名访问,而不能直接通过服务器的IP地址访问呢,有以下两种方法可以实现(当然肯定还会有其他方法可以实现),都是修改httpd.conf文件来实现的,下面举例说明。

在httpd.conf文件最后面,加入以下代码

NameVirtualHost *:80
<VirtualHost *:80>
    ServerName 221.*.*.*
    <Location />
        Order Allow,Deny
        Deny from all
    </Location>
</VirtualHost>
     
<VirtualHost *:80>
    DocumentRoot "/www/web"
    ServerName www.wzlinux.com
</VirtualHost>

说明:上部分是实现拒绝直接通过221.*.*.*这个IP的任何访问请求,这时如果你用221.*.*.*访问,会提示拒绝访问。下部分就是允许通过www.wzlinux.com这个域名访问,主目录指向/www/web(这里假设你的网站的根目录是/www/web)。

三、Tomcat服务

修改server.xml这个配置文件。

比如服务器IP地址是 192.168.1.2 ,相应域名是 www.wzlinux.com。

打开 %TOMCAT_HOME%/conf/server.xml文件,找到 Engine节点作如下Xml代码。

<Engine name="Catalina" defaultHost="www.piis.cn"> 
  <Host name="www.piis.cn" appBase="webapps" 
        unpackWARs="true" autoDeploy="true" 
        xmlValidation="false" xmlNamespaceAware="false"/> 
  <Host name="192.168.1.2" appBase="ipapps" 
        unpackWARs="true" autoDeploy="true" 
        xmlValidation="false" xmlNamespaceAware="false"/> 
</Engine>

注意事项:

  1. Engine 节点配置的 defaultHost 表明缺省访问的Host。defaultHost对应的名称必须存在于Engine节点下配置的host节点中。

  2. 当一台机器有多个IP,而按照规定只允许通过一个指定的域名访问时很有用。此时,把defaultHost指定为非域名对应的host,这样不通过域名访问时就都定位到指定的非域名HOST了

  3. Host 节点 name 对应IP地址,以及域名。一个Host只有指定一个IP或域名。

  4. Host 节点的 appBase ,对应的是存放web应用的目录。这里输入的目录相对于 %TOMCAT_HOME%,如上面的www.wzlinux.com对应的目录是 %TOMCAT_HOME%/webapps,而192.168.1.2 对应的目录是 %TOMCAT_HOME%/ipapps。

四、Nginx服务

定义一个默认的空主机名,禁止其访问,需要通过的域名一定要在其他server配置。

server {
    listen       80 default;
    server_name  "";
    return  444;
}

或者

server {
    listen       80 default;
    server_name  _;
    return  444;
}

时间: 2024-12-25 12:07:23

防止恶意解析——禁止通过IP直接访问网站的相关文章

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

什么是恶意解析? 一般情况下,要使域名能访问到网站需要两步,第一步,将域名解析到网站所在的主机,第二步,在web服务器中将域名与相应的网站绑定.但是,如果通过主机IP能直接访问某网站,那么把域名解析到这个IP也将能访问到该网站,而无需在主机上绑定,也就是说任何人将任何域名解析到这个IP就能访问到这个网站.可能您并不介意通过别人的域名访问到您的网站,但是如果这个域名是未备案域名呢?一旦被查出,封IP.拔线甚至罚款的后果都是需要您来承担的.某些别有用心的人,通过将未备案域名解析到别人的主机上,使其遭

Nginx禁止直接通过IP地址访问网站

介绍下在nginx服务器禁止直接通过IP地址访问网站的方法,以避免别人恶意指向自己的IP,有需要的朋友参考下. 有时会遇到很多的恶意IP攻击,在Nginx下可以禁止IP访问. Nginx的默认虚拟主机在用户通过IP访问,或通过未设置的域名访问,在server的设置里面添加这一行: 复制代码代码示例: listen 80 default; 后面的default参数表示这个是默认虚拟主机. Nginx 禁止IP访问这个设置非常有用. 比如别人通过ip或者未知域名访问你的网站时,希望禁止显示任何有效内

apache禁止用ip直接访问

apache禁止用ip直接访问,可以防止恶意域名指向你的网站 Apache的虚拟主机配置 <VirtualHost *:80> <Location /> Order deny,allow Deny from all        ##屏蔽所有访问 </Location> </VirtualHost> <VirtualHost *:80> DocumentRoot htdocs ServerName www.12.com </VirtualH

IIS7.5 限制几个ip才能访问网站下面某个文件夹

Iis限制几个ip才能访问网站下面某个文件夹 安装iis7的角色功能 ipv4地址和域限制,         选中要限制的文件夹 ,然后选择ipv4地址和域限制,选择 右边的编辑功能设置,选择默认拒绝,然后自行添加需要允许的ip地址.  测试,这个功能是实时生效的.

Nginx禁止直接通过IP地址访问网站(关闭默认站点或空主机头)

这篇文章主要介绍了Nginx中禁止使用IP访问网站的配置实例,一般在备案时可能需要这种设置,需要的朋友可以参考下 国内因为备案的原因,所有服务器都要禁止使用IP访问网站.否则,如果允许使用IP访问网站,那随便解析一个域名到该IP,访问该域名就可以打开网站了.这是一个极大的风险!Nginx中可以很方便的来解决这个问题,小菜鸟来跟大家一起探讨一下. 如下的配置项,可以设置允许使用IP访问网站. server { listen 80; server_name ""; } 这里相当于是绑定了一

PHP禁止同一IP频繁访问以防止网站被防攻击或采集的代码

<?php /* *通过禁止IP频繁访问防止网站被防攻击代码*design by www.scutephp.com*/header('Content-type: text/html; charset=utf-8');$ip=$_SERVER['REMOTE_ADDR'];//获取当前访问者的ip$logFilePath='./log/';//日志记录文件保存目录$fileht='.htaccess2';//被禁止的ip记录文件$allowtime=60;//防刷新时间$allownum=5;//

为什么用IP无法访问网站,域名可以访问?

平时我们访问网站都是通过域名进行访问的,有时候会使用网站IP进行访问的,例如学校的时候我们通常使用IP登录教务处,但很多的时候我们无法通过ip进行访问其他网站,这就涉及到服务器的问题了.网站都是依托在服务器上面的,服务器有很多种,阿里云有ECS.虚拟主机等,我们在访问网站的时候涉及到一个DNS解析的过程,就是将浏览器地址栏的域名转化成IP地址的一个过程,这个过程是由DNS服务器执行的. 一般的网站会选择放在虚拟主机,而且主机上放置了N个网站,而每个网站绑定1个或以上域名,虚拟主机上Apache的

IIS 之 添加绑定域名 或 设置输入IP直接访问网站

在IIS中,怎样设置,让IP可以直接访问网站呢? 首先,您的IP必须是固定的,独立的. 1.打开IIS,右键站点 → 编辑绑定,弹出“网站绑定”窗口,如下图: 2.点击“添加”,弹出“添加网站绑定”窗口,如下图: 3.点击“确定”,添加网站绑定.

告别端口号和工程名——tomcat直接用ip来访问网站

轻量级一直是软件发展的一个趋势,对于域名来说也是一样,现在都在简化域名,比如锤子的 t.tt 虽然我们没有自己域名,但是我们也可以过一把短小精悍的瘾.嘿嘿~ 比如服务器上的项目,我们一般都是通过http://ip:端口号/工程名 这样的形式去访问,这就感觉太长了,有点麻烦. 那么哪些部分是可以去掉的呢? ip当然是不可以去掉的,不过我们可以利用域名的思想,也就是让我们的电脑可以将一个简单的字符串映射到某个ip,这样就简化了~ 对于端口号呢?我们知道浏览网页服务默认的端口号都是80,所以只需要将t