Запитання: як зробити так, щоб мої ключі 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 від випадкового розкриття, спрощують керування конфіденційною інформацією та полегшують підтримку різних конфігурацій для різних середовищ. Щоб запобігти несанкціонованому доступу, слід застосувати належний контроль доступу до змінних середовища та конфігураційних файлів.
У міру того, як ваш проект стає все складнішим (і важливішим), можливо, буде доцільно перейти на платформи з вродженими можливостями, такими як системи керування секретами або служби конфігурації для певного середовища для зберігання конфіденційних елементів. Однак ці швидкі рішення допоможуть вам почати з безпечнішої основи.
- Розповсюдження контенту та PR на основі SEO. Отримайте посилення сьогодні.
- EVM Фінанси. Уніфікований інтерфейс для децентралізованих фінансів. Доступ тут.
- Quantum Media Group. ІЧ/ПР посилений. Доступ тут.
- PlatoAiStream. Web3 Data Intelligence. Розширення знань. Доступ тут.
- джерело: https://www.darkreading.com/edge/how-do-i-protect-my-api-keys-from-appearing-in-github-search-results-
- : має
- :є
- : ні
- :де
- $UP
- a
- Здатний
- зловживання
- доступ
- доступною
- додавати
- доданий
- Перевага
- дозволяти
- Також
- хоча
- an
- та
- будь-який
- будь
- API
- додаток
- застосування
- відповідний
- ЕСТЬ
- AS
- At
- AWS
- BE
- стає
- становлення
- початок
- буття
- Краще
- порушення
- by
- CAN
- можливості
- код
- Кодування
- вчинено
- складність
- поняття
- конфігурація
- налаштувати
- Вважати
- контроль
- управління
- створювати
- дані
- вчений даних
- Database
- Розробник
- розробка
- різний
- безпосередньо
- do
- два
- під час
- e
- простота
- простота використання
- легше
- легко
- або
- ще
- шифрування
- примусове виконання
- забезпечувати
- Навколишнє середовище
- середовищах
- Еквівалент
- і т.д.
- Ефір (ETH)
- Навіть
- НІКОЛИ
- приклад
- експорт
- зовнішній
- риси
- філе
- Файли
- Перший
- для
- чудовий
- від
- в цілому
- GitHub
- Зростає
- Обробка
- Мати
- допомога
- Як
- How To
- Однак
- HTTPS
- i
- ідеальний
- if
- здійснювати
- імпорт
- значення
- in
- включені
- інформація
- вроджений
- IT
- пунктів
- ЙОГО
- JPG
- json
- тримати
- зберігання
- ключ
- ключі
- мова
- більше
- провідний
- як
- загрузка
- місцевий
- подивитися
- машина
- підтримувати
- зробити
- управляти
- управління
- менеджер
- Може..
- засоби
- метод
- може бути
- Модулі
- більше
- найбільш
- рухатися
- my
- Необхідність
- of
- від
- on
- or
- OS
- Інше
- з
- поза
- частина
- Дозволи
- платформа
- Платформи
- plato
- Інформація про дані Платона
- PlatoData
- потенціал
- потенційно
- запобігати
- Production
- проект
- правильний
- захист
- публічно
- Python
- Швидко
- Читати
- рекомендований
- Сховище
- результати
- ризики
- біг
- s
- вчений
- Пошук
- секрет
- безпечний
- безпечно
- безпеку
- ризики для безпеки
- бачить
- чутливий
- окремий
- Послуги
- комплект
- установка
- кілька
- загальні
- Повинен
- аналогічний
- простота
- спростити
- Рішення
- Хтось
- Source
- вихідні
- спеціалізований
- конкретний
- інсценування
- старт
- зберігання
- зберігати
- такі
- система
- Systems
- Приймати
- Що
- Команда
- Їх
- потім
- Ці
- вони
- це
- до
- разом
- інструменти
- два
- використання
- використовуваний
- використовує
- використання
- значення
- різний
- склеп
- Ve
- версія
- контроль версій
- дуже
- через
- шлях..
- способи
- який
- ВООЗ
- волі
- з
- без
- Виграв
- б
- ви
- вашу
- зефірнет