Какова лучшая практика для контакта с паролями в репозиториях мерзавца?

.* (или (.)*, который идентичен по значению) соответствует самой длинной последовательности символов, кроме новой строки. Flex позволяет заключать символы в кавычки, заключая их в двойные кавычки ("//") или используя обратную косую черту (\"). Таким образом, четыре шаблона соответствуют самой длинной последовательности в текущей строке, состоящей из символов

  1. От /* до */

  2. От [ 116] до конца строки

  3. С " до "

  4. С ' до `` «'.

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

Существует не так много, чтобы согнуть шаблоны, кроме основ. Все синтаксисы паттернов описаны в очень короткой главе руководства по флексам .

202
задан Piotr Sidor 7 August 2019 в 01:20
поделиться

2 ответа

Типичный способ сделать это - прочитать информацию о пароле из файла конфигурации. Если ваш файл конфигурации называется foobar.config , то вы должны зафиксировать файл с именем foobar.config.example в репозитории, содержащий образцы данных. Чтобы запустить вашу программу, вы должны создать локальный (не отслеживаемый) файл с именем foobar.config с данными вашего реального пароля.

Чтобы отфильтровать существующий пароль из предыдущих коммитов, см. Страницу справки GitHub на Удаление конфиденциальных данных .

236
ответ дан 23 November 2019 в 05:00
поделиться

Доверяй, но проверяй.

В .gitignore это исключило бы «безопасный» каталог из репо:

secure/

Но я разделяю @ паранойю Майкла Поттера . Итак, чтобы проверить .gitignore, вот модульный тест Python , который вызовет клаксон, если этот «безопасный» каталог когда-нибудь будет проверен. И чтобы проверить проверку, проверен законный каталог тоже:

def test_github_not_getting_credentials(self):
    safety_url = 'https://github.com/BobStein/fliki/tree/master/static'
    danger_url = 'https://github.com/BobStein/fliki/tree/master/secure'

    self.assertEqual(200, urllib.request.urlopen(safety_url).status)

    with self.assertRaises(urllib.error.HTTPError):
        urllib.request.urlopen(danger_url)
0
ответ дан 23 November 2019 в 05:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: