Насколько виден мой / var / www для внешнего мира?

8

Я предполагаю, что это больше вопрос домашнего хозяйства, но здесь это идет.

Если я создаю файл резервной копии моего index.htmlвызываемого index.html.bak, возможно ли, что кто-то извне, использующий httpна моем сервере apache2, сможет составить список содержимого моего /var/wwwкаталога? В настоящее время я не знаю, как это сделать, но это может быть связано с моим отсутствием опыта в этой области. Должен ли я хранить файлы, которые не должны быть видны где-то еще?

В настоящее время я могу предположить, что кто-то может обнаружить файл только в том случае, если где-то существует явная ссылка, указывающая на файл. Насколько виден мой веб-каталог?

Чад Харрисон
источник

Ответы:

11

Чтобы прямо ответить на ваши вопросы - вы можете хранить такие файлы где-то еще или настроить apache, чтобы запретить доступ к ним - запретить доступ к * .bak относительно просто.

Apache, если не настроен на это (как упомянуто выше в MH), сгенерирует и отобразит список каталогов для любого каталога, который не содержит индексный файл - определенный директивой DirectoryIndex, но обычно index.html, index.htm, index.php и аналогичные.

На более общей ноте:

Возможно, вы захотите использовать систему контроля версий, такую ​​как SVN или git (или даже RCS), чтобы сохранить старые версии и историю изменений ваших веб-страниц (включая возможность видеть, что изменилось и когда, и, что более важно, возможность вернуться к предыдущей версии)

И git, и svn нуждаются в репозитории, созданном где-то еще. RCS довольно примитивен и прост, но не требует настройки, он хранит историю изменений либо в том же каталоге, либо в подкаталоге ./RCS, если таковой существует. Одна небольшая неприятность с RCS заключается в том, что при регистрации файла он изменяет права доступа только для чтения, поэтому вам необходимо проверить его еще раз, прежде чем можно будет снова его редактировать (или используйте ci -lдля регистрации файла и немедленной проверки это из).

IMO git, вероятно, излишне для этой работы, SVN близка к идеалу с точки зрения сложности по сравнению с возможностью управления историей ревизий набора отредактированных вручную HTML-страниц, а RCS является архаичным, но все же полезным. С RCS вы можете редактировать файлы непосредственно в / var / www, что означает, что изменения будут «живыми», как только вы сохраните файл. С помощью svn или git вы можете проверить локальную копию, например, в вашем домашнем каталоге на настольном компьютере, отредактировать файлы, зарегистрировать изменения, а затем извлечь обновления в / var / www на сервере, когда он законченный. Вы также можете проверить изменения на промежуточном сервере в первую очередь для тестирования, прежде чем проверять их на рабочем сервере.

Затем вы можете запретить доступ к подкаталогам .svn /, .git /, RCS / etc с помощью apache - например, см. Https://stackoverflow.com/questions/398008/deny-access-to-svn-folders-on-apache.

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

саз
источник
15

Если вы укажете Options -Indexesдля рассматриваемого Directoryвопроса, то Apache не будет генерировать список каталогов. Однако, если кто-то угадает имя файла, он все равно сможет получить к нему доступ, если операционная система разрешит веб-серверу доступ к файлу.

Майкл Хэмптон
источник
5
Ага. Если у вас есть что-то, что вы не хотите подавать в Интернете, не храните это /var/www.
Jscott
Это лучший ответ для tl;drлюдей с ответом Крейга, хотя Крейг более внимателен.
Tacotuesday
@nonak Проголосуй за обоих :)
Джскотт
Что касается угадывания, догадайтесь, сколько времени потребуется, чтобы найти index.html.bak или index.bak.html и т. Д. У всего этого очевидного нет шансов.
Джон Гарденье
1
Компьютеры делают предположения в эти дни. Так что не полагайтесь на безвестность, чтобы защитить что-то важное. Кстати, я проголосовал за другой ответ. :)
Майкл Хэмптон
2

Если у вас включен список каталогов, то этот файл, безусловно, виден. Даже если список каталогов не включен, не рекомендуется сохранять файл, который вы не хотите, чтобы кто-либо видел, в / var / www, потому что он создан для публичных документов.

rgbc
источник
0

Я не вижу смысла хранить файл резервной копии в /var/www.

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

Шивек Хурана
источник