Kako zaščitim svoje ključe API pred prikazom v rezultatih iskanja?

Kako zaščitim svoje ključe API pred prikazom v rezultatih iskanja?

Izvorno vozlišče: 2726143

Vprašanje: Kako preprečim, da moji ključi API postanejo del iskanja nekoga drugega v GitHub?

Odgovor: Shranjevanje ključev API neposredno v vaši kodi na splošno ni priporočljivo zaradi možnih varnostnih tveganj. Če je vaša koda kdaj v skupni rabi ali postane javno dostopna, jo lahko uporabi vsak, ki vidi ključ API, kar lahko povzroči zlorabo ali vdor v varnost.

Obstaja več načinov za varno shranjevanje ključev API:

  • Spremenljivke okolja: Ključe API lahko shranite v spremenljivke okolja na vašem računalniku in nato dostopate do teh spremenljivk iz svoje kode. Prednost te metode je, da ključi ostanejo zunaj vaše kode (so v okolju, kjer se izvaja koda). Pomeni tudi, da so lahko ključi različni za različna okolja, kot je vaš lokalni računalnik, razvojni strežnik, produkcijski strežnik itd.
  • Konfiguracijske datoteke: Ključe API-ja lahko shranite tudi v ločeni konfiguracijski datoteki, ki ni vključena v vaš repozitorij kode. To datoteko je treba dodati v vašo .gitignore datoteko, da preprečite, da bi bila poslana v vaš repozitorij. Ne pozabite tej konfiguracijski datoteki dodati ustrezna dovoljenja na ravni datoteke, da preprečite nepooblaščen dostop. V vaši kodi bi prebrali ključe API iz te datoteke.
  • Sistemi za upravljanje skrivnosti: Za večje aplikacije ali bolj občutljive podatke lahko razmislite o uporabi a sistem upravljanja skrivnosti. To so specializirana orodja, kot so AWS Secrets Manager, HashiCorp's Vault in Googlov Secret Manager, ki pomagajo upravljati dostop do skrivnosti, kot so ključi API.
  • Konfiguracijske storitve, specifične za okolje: Platforme, kot sta Heroku in Netlify, imajo posebne funkcije ali storitve za nastavitev spremenljivk okolja, ki se lahko uporabljajo za shranjevanje ključev API.
  • Šifrirano shranjevanje: Če morate ključe API shraniti v bazo podatkov ali drug sistem za shranjevanje, jih šifrirajte. Na ta način, tudi če nekdo pridobi dostop do sistema za shranjevanje, ne bodo mogli uporabljati ključev brez šifrirnega ključa.

Oglejmo si, kako implementirati prvi dve, najnižji režijski strošek teh rešitev, v varnem kodiranju. Kot primer jezika za to sem uporabil Python, čeprav ima vsak jezik podobne koncepte. Prednost Pythona je njegova preprostost in enostavna uporaba, zaradi česar je skupaj z izjemnimi zmogljivostmi za obdelavo podatkov idealen za večino uporab.

Uporaba spremenljivk okolja za shranjevanje ključev API

Spremenljivke okolja vam omogočajo shranjevanje občutljivih informacij, kot so ključi API, zunaj vaše izvorne kode. Aplikaciji so dostopni med izvajanjem in jih je mogoče preprosto konfigurirati v različnih okoljih (npr. razvoj, uprizarjanje in produkcija).

Najprej nastavite spremenljivko okolja v vašem sistemu ali platformi, kjer se izvaja vaša aplikacija. V sistemu, ki temelji na Unixu, lahko nastavite spremenljivko okolja z uporabo izvoz ukaz:

% izvoz API_KEY=

Nato dostopajte do spremenljivke okolja v kodi vaše aplikacije. Na primer, v Pythonu lahko dostopate do vrednosti spremenljivke okolja z uporabo os modul:

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

Za uporabo zunanjih konfiguracijskih datotek za shranjevanje ključev API

Drug način za shranjevanje ključev API za začetnika razvijalca ali podatkovnega znanstvenika je prek zunanjih konfiguracijskih datotek. Ti so lahko zelo koristni; vendar jih morate izključiti iz skladišča z uporabo .gitignore ali enakovredna.

Najprej ustvarite konfiguracijsko datoteko, kot je npr config.jsonin vanj shranite ključ API:

json { "api_key": " "}

Nato dodajte konfiguracijsko datoteko svojemu projektu .gitignore (ali enakovreden), da zagotovite, da mu vaš sistem za nadzor različic ne sledi.

Končno naložite konfiguracijsko datoteko v kodo vaše aplikacije za dostop do ključa API. Na primer, v Pythonu lahko naložite konfiguracijsko datoteko JSON in dostopate do ključa API tako:

uvozi json z open('config.json') kot f
config = load(f) api_key = config['api_key']

Zaklenite svoje API-je

Z uporabo spremenljivk okolja ali zunanjih konfiguracijskih datotek lahko bolje zaščitite svoje API ključe pred nenamerno izpostavljenostjo, poenostavljajo upravljanje občutljivih informacij in olajšajo vzdrževanje različnih konfiguracij za različna okolja. Uveljaviti morate ustrezen nadzor dostopa do spremenljivk okolja in konfiguracijskih datotek, da preprečite nepooblaščen dostop.

Ker vaš projekt postaja vse bolj zapleten (in pomemben), je morda priporočljivo, da se premaknete na platforme s prirojenimi zmogljivostmi, kot so sistemi za upravljanje skrivnosti ali konfiguracijske storitve, specifične za okolje, za shranjevanje občutljivih elementov. Vendar vam te hitre rešitve pomagajo začeti na bolj varni podlagi.

Časovni žig:

Več od Temno branje