• 防止恶意解析——禁止通过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;
    }



  • 相关阅读:
    webrtc vp8与h264 sdp文件解读
    如何着手学习WebRTC开发(转)
    python第二次周末大作业
    python 面向对象(六)MRO C3算法 super
    python 面向对象(五)约束 异常处理 MD5 日志处理
    python 面向对象(经典作业讲解)
    python 面向对象(四)反射
    python 面向对象(三)类与类之间的关系 初始化方法一些类
    python 面向对象(二)成员
    python 面向对象(一)初识面向对象
  • 原文地址:https://www.cnblogs.com/lcword/p/14201868.html
Copyright © 2020-2023  润新知