Блокировать другие домены, указывающие на ваш - PullRequest
0 голосов
/ 12 марта 2019

У меня есть домен 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>

Ответы [ 2 ]

0 голосов
/ 20 марта 2019

Невозможно, чтобы кто-то мог создать ваш аккаунт.Предположим, я являюсь владельцем домена abc.com из hostgator.Чтобы разместить его на godaddy.com, я должен зайти на контроллер домена и поместить туда серверы имен godaddy.Затем на хостинге я создаю сайт с таким же именем.Вы не должны хостинг реального домена с ipaddress также.всегда используйте серверы имен, которые предотвратят все эти настройки.Пожалуйста, проверьте эту страницу для перенаправления https://www.namecheap.com/support/knowledgebase/article.aspx/385/2237/how-to-redirect-a-url-for-a-domain Вы хостинг домен с локального компьютера?

0 голосов
/ 18 марта 2019

Apache использует поле Host из заголовков HTTP-запросов, чтобы узнать, какой vhost запрашивается (Host соответствует apache ServerName или ServerAlias).

Попробуйте 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 находит соответствующий ServerName в файле vhost и использует /etc/apache2/sites-enabled/001-vhost.conf для удовлетворения запроса

Второй, apache находит соответствующий ServerName в файле vhost и использует /etc/apache2/sites-enabled/002-vhost.conf для удовлетворения запроса

Третий (ваш нежелательный сопоставленный DNS), apacheне находит соответствующий ServerName ни в одном из своих файлов vhosts и использует /etc/apache2/sites-enabled/000-default.conf для удовлетворения запроса

Та же логика применима к SSL vhosts.

PS1: ServerName для хоста HTTP по умолчанию имеет значение ip, а в хосте SSL по умолчанию нет ServerName.Apache просто принимает 127.0.1.1, который не является IP-адресом, который он прослушивает (просто говорит, что это не более запутанно).

PS2: чтобы сделать vhost по умолчанию, он должен быть первым по отсортированным именам(000 -> 001 -> 002).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...