Как мне обработать секретный ключ API, когда я отправляю на GitHub, чтобы мой проект все еще работал, когда репозиторий клонирован? - PullRequest
0 голосов
/ 12 октября 2018

У меня есть простой проект, который делает HTTP-запросы к конечной точке API и использует ключ API, который я хочу сохранить в секрете.Сначала я поместил ключ в его собственный файл, импортировал ключ в файл, который его использует, и добавил файл ключа в .gitignore.Проблема в том, что этот подход не сработает, если кто-то клонирует GitHub-репозиторий.

Так что мой вопрос - как я могу сохранить свой ключ API в секрете, но сохранить ли мой проект работоспособным, если кто-то клонирует репозиторий?

Любая обратная связь с благодарностью.

Ответы [ 2 ]

0 голосов
/ 12 октября 2018

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

Если вы используете его только на ограниченном количестве компьютеров, вам, вероятно, следует «установить» секрет на этих компьютерах.Есть несколько мест, где они могут быть безопасно сохранены и привязаны к вашим учетным данным / логину, не будучи общедоступными (например, зашифрованный каталог или просто личный каталог, если вы доверяете компьютеру / операционной системе). В Windows есть «Диспетчер учетных данных»."зашифрован и привязан к пользователю, к которому вы можете получить доступ только в том случае, если вы работаете от имени этого пользователя (он использует его для хранения веб-паролей и т. д.)

Если вы хотите опубликовать скомпилированное приложение - тогда ваш текущийРешение не очень хорошее, так как вы можете просто декомпилировать приложение и получить секрет.Лучше иметь загрузку «ключа», в которой хранится секрет, прикрепленный к их учетным данным, как указано выше.

0 голосов
/ 12 октября 2018

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

С этим из пути, что выможет сделать:

  • Явно сказать пользователю, что ему нужно получить и настроить свой собственный ключ API - и, возможно, даже, как это сделать.
  • Добавить проверку в началеваше программное обеспечение, которое выдает полезное сообщение об ошибке, если ключ API отсутствует, и в противном случае запускает вашу фактическую программу
  • Добавьте фиктивный файл, чтобы показать, как он должен быть настроен.Я сделал это для своего телеграмма-чата: никогда не фиксируйте secret.config, но фиксируйте sample_secret.config, чтобы любой, кто разветвляет ваш репозиторий, мог видеть, какой синтаксис ему нужно будет использовать.sample_secret.config никогда не используется программным обеспечением, и вместо ключа API содержится ключ, такой как this-is-4-dummy-API-key-3232 или любой другой, имеющий смысл.
  • Создайте второй ключ API, который работает, но который может быть использован общественностью безлюбые вопросы.Настройте все так, чтобы он работал с любым ключом API, и передайте только второй.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...