Я полагаю, это скорее вопрос домашнего хозяйства, но вот оно.
Если я создам резервную копию своего index.html
называется index.html.bak
, возможно ли, что кто-то извне использует http
на моем сервере apache2 может отображать содержимое моих /var/www
каталог? В настоящее время я не знаю, как это сделать, но это может быть связано с отсутствием у меня опыта в этой области. Следует ли хранить файлы, которые не должны быть видны где-то еще?
В настоящее время я могу думать, что единственный возможный способ обнаружить файл - это наличие явной ссылки, указывающей на файл. Насколько виден мой веб-каталог?
Если вы укажете Options -Indexes
для Directory
в вопросе, то Apache не будет создавать список каталогов. Однако, если кто-то угадает имя файла, он все равно сможет получить к нему доступ, если операционная система разрешит веб-серверу доступ к файлу.
Чтобы напрямую ответить на ваши вопросы - вы можете хранить такие файлы где-то еще или настроить 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
Конечно, эффективное использование системы контроля версий потребует некоторой дисциплины. вам придется выработать привычку проверять свои изменения всякий раз, когда вы их делаете - это того стоит.
Если у вас включен список каталогов, этот файл обязательно будет виден. Даже если список каталогов не включен, не рекомендуется сохранять файл, который вы не хотите, чтобы кто-то видел, в / var / www, потому что он предназначен для общедоступных документов.
Не вижу смысла хранить файл резервной копии в /var/www
.
Резервные копии создаются, чтобы быстро исправить ситуацию, когда вы что-то напортачите. Я бы посоветовал вам создать новый каталог резервных копий на каком-нибудь основном диске (недоступный для внешнего мира) и храните там свои резервные копии.