Назад | Перейти на главную страницу

Скрытие веб-сайта от поисковых роботов и зрителей путем отключения VirtualHost по умолчанию

При размещении веб-сайта на удаленном VPS мы хотели бы, чтобы он был доступен только для членов команды, и мы также хотели бы, чтобы роботы поисковых систем не работали, пока сайт не будет завершен.

Управление доступом хостом, будь то в Iptables или Apache, нежелательно, поскольку доступ к хостам может различаться.

После некоторого чтения в конфигурации Apache и других публикаций SF, я остановился на следующем проекте, который основан на ограничении доступа только через определенные доменные имена:

Виртуальный хост по умолчанию будет отключен в конфигурации Apache следующим образом - в зависимости от поведения Apache для использования первого виртуального хоста для сайта по умолчанию:

<VirtualHost *:80>
# Anything matching this should be silently ignored.
</VirtualHost>

<VirtualHost *:80>
    ServerName secretsiteone.com
    DocumentRoot /var/www/secretsiteone.com
</VirtualHost>

<VirtualHost *:80>
    ServerName secretsitetwo.com
    ...
</VirtualHost>

Затем каждый член команды может добавить доменные имена в свои локальные /etc/hosts:

xx.xx.xx.xx   secrethostone.com      

У меня вопрос: Достаточно ли хороша описанная выше техника для достижения вышеупомянутых целей, в частности ограничения SE-ботов, или возможно, что боты будут обходить это стороной.

Заметка: Я понимаю, что правила mod_rewrite могут использоваться для достижения аналогичного эффекта, как описано здесь: Как отключить VirtualHost по умолчанию в apache2?, поэтому тот же вопрос применим и к этой технике.

Также обратите внимание: содержание не является в высшей степени секретным - идея состоит не в том, чтобы придумывать что-то, защищенное от взлома, поэтому нас не беспокоит перехват трафика и тому подобное. Идея состоит в том, чтобы не дать конкурентам и случайным пользователям просматривать контент до того, как он будет выпущен, а также предотвратить его индексацию роботами SE.

Конечно, если вы выберете очень случайное доменное имя, оно должно быть достаточно хорошо скрыто. Однако, вероятно, было бы так же легко (и не потребовало бы, чтобы все изменяли свой файл hosts) просто бросить его за дайджест http запрос аутентификации. Затем просто раздайте учетные данные членам вашей команды, и они смогут получить к ним доступ.

В вашем VirtualHost просто укажите место для защиты. Скорее всего, это будет тот же путь, что и ваш VirtualHost DocumentRoot:

<Location /var/www/secretsiteone.com>
    AuthName 'Nothing to see here'

    AuthType Digest
    AuthDigestProvider file
    AuthDigestDomain /
    AuthUserFile /path/to/.htdigest

    Require valid-user
</Location>

Затем сгенерируйте это .htdigest файл:

htdigest -c /path/to/.htdigest 'Nothing to see here' 'username'