阻止指向您的其他域名

问题描述 投票:-3回答:2

我有域名abc.com,我注意到另一个域名不属于我的域名,指向与我相同的IP地址。这是重影我的,所以当你访问该网站时,它看起来就像你在我的网站。

有关如何预防的任何想法?

我的vhost看起来像:

<IfModule mod_ssl.c>
<VirtualHost *:443>
        ServerName www.example.com
        DocumentRoot /path/to/site

        <Directory /path/to/site/>
            Options Indexes FollowSymLinks
            AllowOverride All
            Require all granted
        </Directory>


RewriteEngine On
RewriteCond %{HTTP_HOST} ^example.com$ [NC]
RewriteRule (.*) http://www.example.com/$1 [R=301,L]

RewriteCond %{HTTP_REFERER} .
RewriteCond %{HTTP_REFERER} !example\.com [NC]
RewriteCond %{HTTP_HOST} !example.com [NC]
RewriteRule .? - [F]

ServerName example.com
ServerAlias www.example.com
</VirtualHost>
</IfModule>
linux apache mod-rewrite
2个回答
-1
投票

Apache使用HTTP请求标头中的Host字段来了解请求的vhost(Host对应于apache ServerNameServerAlias)。

试试apache2ctl -S,它会给你一个包含如下内容的输出:

VirtualHost configuration:
*:80                   is a NameVirtualHost
         default server ip (/etc/apache2/sites-enabled/000-default.conf:1)
         port 80 namevhost ip (/etc/apache2/sites-enabled/000-default.conf:1)
         port 80 namevhost www.example1.com (/etc/apache2/sites-enabled/001-vhost.conf:1)
         port 80 namevhost www.example2.com (/etc/apache2/sites-enabled/002-vhost.conf:1)
*:443                  is a NameVirtualHost
         default server 127.0.1.1 (/etc/apache2/sites-enabled/default-ssl.conf:2)
         port 443 namevhost 127.0.1.1 (/etc/apache2/sites-enabled/default-ssl.conf:2)
         port 443 namevhost www.example1.com (/etc/apache2/sites-enabled/non-default-ssl.conf:2)

现在假设我的ip是1.1.1.1:

鉴于这三个curl命令:

1. curl http://1.1.1.1 -H 'Host: www.example1.com'
1. curl http://1.1.1.1 -H 'Host: www.example2.com'
1. curl http://1.1.1.1 -H 'Host: www.spoofexample.com'

首先,apache在vhost文件中找到相应的ServerName,并使用/etc/apache2/sites-enabled/001-vhost.conf来满足请求

第二,apache在vhost文件中找到相应的ServerName,并使用/etc/apache2/sites-enabled/002-vhost.conf来满足请求

第三个(你的不受欢迎的映射DNS),apache没有在任何vhosts文件中找到相应的ServerName,并使用/etc/apache2/sites-enabled/000-default.conf来满足请求

同样的逻辑适用于SSL虚拟主机。

PS1:ServerName默认HTTP vhost的值为ip,默认SSL vhost中没有ServerName。 Apache只假设一个127.0.1.1,它不是它所监听的IP地址(只是告诉它不会让人感到困惑)。

PS2:要使vhost成为默认值,它必须是按名称排序的第一个(000 - > 001 - > 002)。


-1
投票

有人可能会冒你的帐户。假设我是hostgator的abc.com域名所有者。为了在godaddy.com上托管它,我必须去域控制器把godaddy名称服务器放在那里。然后在托管我创建一个同名的网站。您也不应该使用ipaddress托管真实域名。始终使用名称服务器,这将阻止所有这些配置。请检查此页面是否有重定向https://www.namecheap.com/support/knowledgebase/article.aspx/385/2237/how-to-redirect-a-url-for-a-domain您是否从本地计算机托管域名?

© www.soinside.com 2019 - 2024. All rights reserved.