Як захистити ключі API від появи в результатах пошуку?

Як захистити ключі API від появи в результатах пошуку?

Вихідний вузол: 2726143

Запитання: як зробити так, щоб мої ключі API не стали частиною чужого пошуку GitHub?

Відповідь: Зберігання ключів API безпосередньо у вашому коді зазвичай не рекомендується через потенційні ризики для безпеки. Якщо ваш код стане загальнодоступним, будь-хто, хто побачить ключ API, зможе його використати, що може призвести до зловживань або порушення безпеки.

Є кілька способів безпечного зберігання ключів API:

  • Змінні середовища: Ви можете зберігати ключі API у змінних середовища на своєму комп’ютері, а потім отримувати доступ до цих змінних зі свого коду. Перевага цього методу полягає в тому, що ключі не потрапляють у ваш код (вони знаходяться в середовищі, де виконується код). Це також означає, що ключі можуть відрізнятися для різних середовищ, як-от локальна машина, сервер розробки, робочий сервер тощо.
  • Конфігураційні файли: Ви також можете зберігати ключі API в окремому файлі конфігурації, який не включено до вашого сховища коду. Цей файл слід додати до вашого .gitignore файл, щоб запобігти його закріпленню у вашому сховищі. Обов’язково додайте до цього файлу конфігурації відповідні дозволи на рівні файлу, щоб запобігти неавторизованому доступу. У вашому коді ви читаєте ключі API з цього файлу.
  • Системи управління секретами: Для великих програм або більш конфіденційних даних ви можете розглянути можливість використання a система управління секретами. Це спеціалізовані інструменти, такі як AWS Secrets Manager, HashiCorp's Vault і Google's Secret Manager, які допомагають керувати доступом до секретів, як-от ключів API.
  • Послуги конфігурації для певного середовища: Такі платформи, як Heroku та Netlify, мають спеціальні функції або служби для встановлення змінних середовища, які можна використовувати для зберігання ключів API.
  • Зашифроване сховище: Якщо вам потрібно зберігати ключі API в базі даних або іншій системі зберігання, ви повинні зашифрувати їх. Таким чином, навіть якщо хтось отримує доступ до системи зберігання, вони не зможуть використовувати ключі без ключа шифрування.

Давайте розглянемо, як реалізувати перші два, найнижчі з цих рішень, у безпечному кодуванні. Я використовував Python як приклад мови для цього, хоча будь-яка мова матиме схожі концепції. Перевагою Python є його простота та легкість у використанні, які разом із чудовими можливостями обробки даних роблять його ідеальним для більшості випадків використання.

Щоб використовувати змінні середовища для зберігання ключів API

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

Спочатку встановіть змінну середовища у вашій системі або платформі, на якій працює ваша програма. У системі на основі Unix ви можете встановити змінну середовища за допомогою експорт команда:

% експорт API_KEY=

Далі перейдіть до змінної середовища в коді програми. Наприклад, у Python ви можете отримати доступ до значення змінної середовища за допомогою os модуль:

% python import os api_key = os.environ['API_KEY']

Використання зовнішніх файлів конфігурації для зберігання ключів API

Ще один спосіб для розробника-початківця або спеціаліста з обробки даних зберігати ключі API — це зовнішні конфігураційні файли. Вони можуть бути дуже корисними; однак вам слід виключити їх зі сховища за допомогою .gitignore або еквівалент.

Спочатку створіть файл конфігурації, наприклад config.jsonі збережіть у ньому ключ API:

json { "api_key": " "}

Далі додайте файл конфігурації до свого проекту .gitignore (або еквівалент), щоб переконатися, що його не відстежує ваша система контролю версій.

Нарешті, завантажте файл конфігурації в код програми, щоб отримати доступ до ключа API. Наприклад, у Python ви можете завантажити файл конфігурації JSON і отримати доступ до ключа API таким чином:

імпорт json з open('config.json') як f
config = load(f) api_key = config['api_key']

Заблокуйте свої API

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

У міру того, як ваш проект стає все складнішим (і важливішим), можливо, буде доцільно перейти на платформи з вродженими можливостями, такими як системи керування секретами або служби конфігурації для певного середовища для зберігання конфіденційних елементів. Однак ці швидкі рішення допоможуть вам почати з безпечнішої основи.

Часова мітка:

Більше від Темне читання