Как закрыть доступ к исходникам в каталогах .svn

Решил недавно разместить веб-проект на сервере как рабочая копия SVN, чтобы сделать удобным публикацию с помощью SVN. Сразу возник логичный вопрос - а будут ли доступны извне каталоги .svn, которые создаются при этом в каждом каталоге проекта? Простая проверка через браузер показала, что если не используется модуль Rewrite то каталоги эти видны извне, а значит любой может зайти и прочесть исходные скрипты, например php. Получается огромная дыра в безопасности, которую нужно обязательно закрыть.

Первая идея, которая приходит в голову - это закрыть доступ в конфиге Apache. Только надо узнать как. Погуглив немного нашел решение, которое реально работает и выдает Forbidden при попытке зайти в каталог .svn:

<LocationMatch ".*\.svn.*">
    Order allow,deny
    Deny from all
</LocationMatch>

Чтобы не смешивать общие настройки Apache с настройками, добавляемые пользователем, рекомендуется добавлять их не в файл apache2.conf а в файл httpd.conf. Это сделано для удобства, когда все ваши настройки записаны отдельно, легче потом решать проблемы, возникающие при ошибках в добавляемых настройках.

После добавления выше описанной настройки, нужно перезагрузить Apache:

/etc/init.d/apache2 restart

Использовался дистрибутив Ubuntu 10.04

 

P.S.: При поиске нужной настройки, наткнулся на статьи и сообщениях на форумах, которые изрядно удивили. Оказывается на многих крупных и уважаемых сайтах, доступ к каталогам .svn не был закрыт до тех пор пока кто-то не опубликовал статью об уязвимости на сайтах, использующих SVN. Особенно понравился заголовок одной статьи - «SVN позволяет получить доступ к исходному коду». Аж как-то обидно за SVN стало - причем тут он? :) Как можно не думать о каталогах .svn на сайте, размещая их там? Наверное только если не знать об их существовании и их предназначении.