Безопасно ли иметь /.svn/ папки на живом сайте? (Как удалить их, но сохранить возможность обновления SVN?)


10

Я делаю обновление SVN, чтобы обновить код для моего сайта PHP, но он оставляет .svn/папки по всему.

Я считаю опасным оставлять эти файлы общедоступными для чтения, но очень легко обновлять систему.

Есть ли способ использовать svn updateдля обновления системы, но не для экспорта .svn/папок?

Ответы:


21

Если вы используете apache:

<Directory ~ "\.svn">
    Order allow,deny
    Deny from all
</Directory>

Это заблокирует людям .svnудаленный доступ к каталогам (с помощью браузера), но вы можете оставить (и возможности SVN) в проекте.

Кстати вы можете заменить \.svnна \.gitили , \.cvsесли вы используете что - то другое , чем подрывная деятельность.


и это заблокирует все .svn каталоги на сайте? У меня есть много подкаталогов
— Silicpi

в настоящее время мой httpd.conf имеет <Directory /> Options FollowSymLinks AllowOverride All </ Directory>, могу ли я добавить то, что вы написали чуть ниже, как отдельную вещь, или эти две записи необходимо объединить?
— Силиконпи

Это будет соответствовать любой директории, которая называется .svnда.
— coredump

Вы можете добавить его отдельно.
— coredump


3

Вы хотите экспортировать свой код из SVN на живой сайт ...

Не используйте svn updateдля этого. обновление предназначено для использования с обновлением рабочих копий, а не с экспортом кода. Используйте svn exportвместо этого, поскольку он экспортирует чистое дерево каталогов из указанного репозитория.

--forceФлаг позволит экспорту перезаписывать существующие файлы.

SVN Export ручной ввод


Я могу посочувствовать, если OP не хочет использовать export, так как он всегда требует захватить новую свежую копию репозитория, что создает трудности, если это большое репо на небольшом соединении (скажем, веб-сервер, размещенный на сервере, но репозиторий SVN находится в вашем местном офисе и доступен по ссылке 1 Мб). updateозначает, что вам не нужно получать все это каждый раз.
— Марк Хендерсон

Честная точка зрения. Возможно, экспорт в локальную копию сайта, а затем просто пересылка изменений на удаленный веб-сервер будет работать в этой ситуации? У меня никогда не было этой проблемы, поэтому я не рассматривал ее.
— Грейнольдс

2

Я не помещаю их в производственные / живые сайты. Потому что я не хочу, чтобы я и / или другие разработчики забывали, что плохая идея - редактировать живой код. Мой скрипт установки отфильтровывает мои файлы .svn.


@kerner - как вы их обновите?
— Силиконпи

1
Почему бы просто не использовать их svn exportи не фильтровать?
— pjmorse

У меня есть скрипт установки, который я использую для своих сайтов, и немного подгоняю под каждый. Обычно он также выполняет такие функции, как создание баз данных, таблиц БД и пользователей БД, настройка любых пользователей или администраторов по умолчанию и т. Д. Поэтому, чтобы выполнить экспорт в prod, пользователь prod (как человек или скрипт) проверяет работоспособность SVN. скопировать куда-нибудь вдоль ~ /, а затем запустить скрипт установки, который является членом указанной рабочей копии, а затем, при необходимости, удалить рабочую копию.
— ekerner

1

Вы должны изучить правильную систему развертывания, такую ​​как Capistrano . Это означает, что ваши рабочие серверы не нуждаются в Subversion, и вы можете развертывать на нескольких серверах и добавлять собственную логику в развертывания. Это также облегчает откат развертываний.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.