Как вам удается сохранить учетные данные в общедоступном исходном коде? - PullRequest
6 голосов
/ 08 ноября 2010

Допустим, вы хотите показать исходный код файла настроек, но не хотите, чтобы 3-4 строки отображались в общедоступном исходном коде.Вы просто вручную заменяете эти переменные или используете какие-то хитрости, например включаете их в еще один отдельный файл и включаете его в основной файл conf *

Или более распространенным является просто не отслеживать и включать этот файлв репо?

Ответы [ 4 ]

6 голосов
/ 08 ноября 2010

То, как я решаю эту проблему, и мне приходится иметь дело с ней почти в каждом проекте, над которым я работаю, заключается в использовании шаблона, который я выбрал у кого-то. В этом шаблоне, который можно использовать не только для того, чтобы не допустить, чтобы учетные данные не находились под контролем версий, но также для разделения параметров среды / платформы, основной файл настроек, который находится под контролем версий, импортирует вторичный файл настроек, который удачно называется "local_settings". Этот файл "local_settings" не находится под управлением версией, и для каждой платформы, на которой развернут источник, создается отдельный специальный файл local_settings, предназначенный только для этой платформы.

Я приведу пример того, как я обычно делаю это для моих проектов Django / Python. Существует центральный файл settings.py для каждого проекта, который находится под контролем версий, и платформа (возможно, платформа не совсем подходящая терминология для использования здесь), конкретный файл local_settings.py. Файл local_settings.py импортируется из файла settings.py, где различные переменные настройки определяются следующим образом:

import local_settings

DATABASE_USER = local_settings.db_user
DATABASE_PASSWORD = local_settings.db_pass

И, как пример для приведенного выше фрагмента, файл local_settings.py определяется следующим образом:

db_user = 'user'
db_pass = 'pass'

Я обнаружил, что эта схема при работе с рассматриваемой проблемой работает очень хорошо.

4 голосов
/ 08 ноября 2010

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

Другой подход заключается в том, чтобы примерные значения работали для вашей разработки., но быть бессмысленным, то есть:

host: localhost
username: user
password: test

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

3 голосов
/ 08 ноября 2010

Просто замените переменные на примеры.

SETTINGS = {
     username: 'test',
     password: 'mypass'
}

и т.д.

1 голос
/ 08 ноября 2010

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

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