Предотвращение случайной проверки пароля БД в общедоступной SVN - PullRequest
1 голос
/ 25 марта 2009

Кто-нибудь знает метод предотвращения какого-либо (меня!) Случайного добавления файла со строкой подключения к общедоступной базе данных в код Google. Мне нужно запустить некоторые модульные тесты для базы данных с моего локального компьютера (чтобы обновить схему БД), но я обеспокоен тем, что забуду, что изменил соединение, чтобы указать на публичную БД, а затем проверил код на SVN.

Конечно, это произойдет не в первый раз, но, вероятно, через 5 или 10 раз.

Какой самый простой способ справиться с этим?

Ответы [ 4 ]

2 голосов
/ 25 марта 2009

Вот решение, которое я использую для веб-приложения. Во-первых, я не хочу игнорировать файл Web.config в svn, потому что он содержит важную информацию, которая может и будет меняться. Таким образом, я извлекаю строку подключения из Web.Config, помещаю ее в файл с именем WebCS.config и затем использую директиву SVN .ignore, чтобы избежать проверки только в этом одном файле.

Для этого поместите следующую строку «включить» в Web.Config:

 <connectionStrings configSource="WebCS.config"/>

Затем создайте файл WebCS.config и введите следующее:

<connectionStrings>
<add name="ConnString" 
         connectionString="Data Source=YourServer;Initial Catalog=YourDB;etc..
         providerName="System.Data.SqlClient"/>
</connectionStrings>

Это также упрощает обновление веб-сайтов: просто загрузите все файлы, кроме файла WebCS.config (у меня есть пакетный файл для удаления файла после «публикации» сайта). После этого вы будете уверены, что все настройки файла Web.Config будут работать без вас, не связываясь со строкой подключения И вы будете уверены, что в вашем хранилище не пропущен важный файл И вы не будете подвергать свою строку подключения .

2 голосов
/ 25 марта 2009

Я обычно создаю файл конфигурации по умолчанию, который называется что-то вроде myapp.config.default, в котором нет паролей, и добавляю этот файл в репозиторий вместо моего файла конфигурации.

1 голос
/ 25 марта 2009

I второе Эмиль Н предложение с одним дополнением: вы должны игнорировать через svn: ignore -свойте правильный файл конфигурации

Например, ваш конфигурационный файл должен находиться на:

./config/app.conf

тогда вы должны игнорировать этот файл для subversion:

svn propset svn:ignore "app.conf" ./conf

и скопируйте app.conf в app.conf.example и добавьте этот файл в subversion: cp app.conf app.conf.example svn add app.conf.example

Теперь Subversion никогда не будет пытаться добавить файл app.conf в ваш репозиторий (а также ваши коллеги не могут случайно зафиксировать этот файл!)

1 голос
/ 25 марта 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...