Kuidas kaitsta oma API võtmeid otsingutulemustes ilmumise eest?

Kuidas kaitsta oma API võtmeid otsingutulemustes ilmumise eest?

Allikasõlm: 2726143

Küsimus: kuidas hoida oma API-võtmeid kellegi teise GitHubi otsingu osaks?

Vastus: API-võtmete salvestamine otse koodis ei ole üldiselt soovitatav võimalike turvariskide tõttu. Kui teie koodi kunagi jagatakse või see muutub avalikult juurdepääsetavaks, saavad kõik, kes näevad API-võtit, seda kasutada, mis võib viia kuritarvitamiseni või turvarikkumiseni.

API-võtmete turvaliseks salvestamiseks on mitu võimalust.

  • Keskkonnamuutujad: API-võtmeid saate oma masina keskkonnamuutujatesse salvestada ja seejärel oma koodi kaudu neile muutujatele juurde pääseda. Selle meetodi eeliseks on see, et võtmed ei pääse teie koodi (need asuvad keskkonnas, kus kood töötab). See tähendab ka seda, et võtmed võivad eri keskkondades (nt teie kohalik masin, arendusserver, tootmisserver jne) olla erinevad.
  • Konfiguratsioonifailid: API võtmeid saate salvestada ka eraldi konfiguratsioonifaili, mis ei sisaldu teie koodihoidlas. See fail tuleks lisada teie .põlgur faili, et vältida selle sidumist teie hoidlasse. Volitamata juurdepääsu vältimiseks lisage sellele konfiguratsioonifailile kindlasti sobivad failitaseme õigused. Oma koodis loeksite API võtmed sellest failist.
  • Saladuste haldussüsteemid: Suuremate rakenduste või tundlikumate andmete puhul võite kaaluda a saladuste haldussüsteem. Need on spetsiaalsed tööriistad, nagu AWS Secrets Manager, HashiCorpi Vault ja Google's Secret Manager, mis aitavad hallata juurdepääsu sellistele saladustele nagu API võtmed.
  • Keskkonnaspetsiifilised konfiguratsiooniteenused: Platvormidel, nagu Heroku ja Netlify, on keskkonnamuutujate seadistamiseks spetsiifilised funktsioonid või teenused, mida saab kasutada API-võtmete salvestamiseks.
  • Krüpteeritud salvestusruum: Kui teil on vaja salvestada API võtmed andmebaasi või muusse salvestussüsteemi, peaksite need krüpteerima. Sel viisil, isegi kui keegi saab juurdepääsu salvestussüsteemile, ei saa nad ilma krüpteerimisvõtmeta võtmeid kasutada.

Vaatame, kuidas rakendada turvalises kodeerimises kahte esimest, nende lahenduste kõige väiksemat üldkulusid. Olen kasutanud selle näidiskeelena Pythonit, kuigi igal keelel on sarnased mõisted. Pythoni eeliseks on selle lihtsus ja kasutusmugavus, mis koos tohutute andmetöötlusvõimalustega muudavad selle ideaalseks enamiku kasutuste jaoks.

Keskkonnamuutujate kasutamine API võtmete salvestamiseks

Keskkonnamuutujad võimaldavad teil salvestada tundlikku teavet, näiteks API võtmeid, väljaspool lähtekoodi. Need on rakendusele juurdepääsetavad käitusajal ja neid saab hõlpsasti konfigureerida erinevates keskkondades (nt arendus, lavastus ja tootmine).

Esmalt määrake oma süsteemis või platvormil, kus teie rakendus töötab, keskkonnamuutuja. Unixi-põhises süsteemis saate määrata keskkonnamuutuja, kasutades eksport käsk:

% ekspordi API_KEY=

Järgmisena pääsete juurde oma rakenduse koodis olevale keskkonnamuutujale. Näiteks Pythonis saate keskkonnamuutuja väärtusele juurde pääseda, kasutades os moodul:

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

Väliste konfiguratsioonifailide kasutamine API võtmete salvestamiseks

Teine viis alustavale arendajale või andmeteadlasele API-võtmete salvestamiseks on väliste konfiguratsioonifailide kaudu. Need võivad olla väga kasulikud; Siiski peaksite need hoidlast välja jätma kasutades .põlgur või samaväärne.

Kõigepealt loo konfiguratsioonifail, nt config.jsonja salvestage sinna API võti:

json { "api_key": " "}

Järgmisena lisage konfiguratsioonifail oma projekti .põlgur (või samaväärne), et teie versioonihaldussüsteem seda ei jälgiks.

Lõpuks laadige API-võtmele juurdepääsuks oma rakenduse koodis konfiguratsioonifail. Näiteks Pythonis saate laadida JSON-i konfiguratsioonifaili ja pääseda API-võtmele järgmiselt:

importige json koos open('config.json') kui f
config = load(f) api_key = config['api_key']

Lukustage oma API-d

Kasutades keskkonnamuutujaid või väliseid konfiguratsioonifaile, saate paremini kaitsta oma API võtmeid juhusliku kokkupuute eest, lihtsustab tundliku teabe haldamist ja hõlbustab erinevate keskkondade jaoks erinevate konfiguratsioonide haldamist. Volitamata juurdepääsu vältimiseks peaksite keskkonnamuutujatele ja konfiguratsioonifailidele jõustama õiged juurdepääsukontrollid.

Teie projekti keerukuse (ja tähtsuse) kasvades võib olla soovitatav liikuda tundlike üksuste salvestamiseks loodud platvormidele, nagu saladuste haldussüsteemid või keskkonnaspetsiifilised konfiguratsiooniteenused. Need kiired lahendused aitavad teil aga kindlamal alusel alustada.

Ajatempel:

Veel alates Tume lugemine