Hur skyddar jag mina API-nycklar från att visas i sökresultat?

Hur skyddar jag mina API-nycklar från att visas i sökresultat?

Källnod: 2726143

Fråga: Hur förhindrar jag att mina API-nycklar blir en del av någon annans GitHub-sökning?

Svar: Att lagra API-nycklar direkt i din kod rekommenderas i allmänhet inte på grund av de potentiella säkerhetsriskerna. Om din kod någonsin delas eller blir allmänt tillgänglig kan alla som ser API-nyckeln använda den, vilket kan leda till missbruk eller ett säkerhetsintrång.

Det finns flera sätt att lagra API-nycklar säkert:

  • Miljövariabler: Du kan lagra API-nycklar i miljövariabler på din maskin och sedan komma åt dessa variabler från din kod. Denna metod har fördelen av att hålla nycklarna borta från din kod (de finns i miljön där koden körs). Det betyder också att nycklarna kan vara olika för olika miljöer, som din lokala maskin, en utvecklingsserver, en produktionsserver, etc.
  • Konfigurationsfiler: Du kan också lagra API-nycklar i en separat konfigurationsfil som inte ingår i ditt kodlager. Denna fil bör läggas till din .gitignore fil för att förhindra att den överförs till ditt arkiv. Se till att lägga till lämpliga filnivåbehörigheter till den här konfigurationsfilen för att förhindra obehörig åtkomst. I din kod skulle du läsa API-nycklarna från den här filen.
  • Hemlighetshanteringssystem: För större applikationer eller känsligare data kan du överväga att använda en hemlighetshanteringssystem. Dessa är specialiserade verktyg som AWS Secrets Manager, HashiCorps Vault och Googles Secret Manager som hjälper till att hantera åtkomst till hemligheter som API-nycklar.
  • Miljöspecifika konfigurationstjänster: Plattformar som Heroku och Netlify har specifika funktioner eller tjänster för att ställa in miljövariabler, som kan användas för att lagra API-nycklar.
  • Krypterad lagring: Om du behöver lagra API-nycklarna i en databas eller annat lagringssystem bör du kryptera dem. Detta sätt, även om någon får tillgång till lagringssystemet, kommer de inte att kunna använda nycklarna utan krypteringsnyckeln.

Låt oss ta en titt på hur man implementerar de två första, den lägsta overheaden av dessa lösningar, i säker kodning. Jag har använt Python som exempelspråk för detta, även om alla språk kommer att ha liknande koncept. Fördelen med Python är dess enkelhet och användarvänlighet, vilket tillsammans med dess formidabla datahanteringsmöjligheter gör den idealisk för de flesta användningsområden.

Att använda miljövariabler för att lagra API-nycklar

Med miljövariabler kan du lagra känslig information, såsom API-nycklar, utanför din källkod. De är tillgängliga för applikationen under körning och kan enkelt konfigureras i olika miljöer (t.ex. utveckling, iscensättning och produktion).

Ställ först in miljövariabeln i ditt system eller plattformen där din applikation körs. I ett Unix-baserat system kan du ställa in en miljövariabel med hjälp av export kommando:

% export API_KEY=

Öppna sedan miljövariabeln i din applikations kod. Till exempel, i Python kan du komma åt värdet på en miljövariabel med hjälp av os modul:

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

Att använda externa konfigurationsfiler för att lagra API-nycklar

Ett annat sätt för nybörjarutvecklaren eller datavetaren att lagra API-nycklar är via externa konfigurationsfiler. Dessa kan vara mycket användbara; dock bör du utesluta dem från förvaret med hjälp av .gitignore eller motsvarande.

Skapa först en konfigurationsfil, som t.ex config.json, och lagra API-nyckeln i den:

json { "api_key": " " }

Lägg sedan till konfigurationsfilen till ditt projekts .gitignore (eller motsvarande) för att säkerställa att det inte spåras av ditt versionskontrollsystem.

Läs slutligen in konfigurationsfilen i din applikations kod för att komma åt API-nyckeln. Till exempel, i Python kan du ladda en JSON-konfigurationsfil och komma åt API-nyckeln så här:

importera json med open('config.json') som f
config = ladda(f) api_key = config['api_key']

Lås upp dina API:er

Genom att använda antingen miljövariabler eller externa konfigurationsfiler kan du bättre skydda dina API-nycklar från oavsiktlig exponering, förenkla hanteringen av känslig information och gör det lättare att underhålla olika konfigurationer för olika miljöer. Du bör tillämpa korrekta åtkomstkontroller på miljövariablerna och konfigurationsfilerna för att förhindra obehörig åtkomst.

När ditt projekt växer i komplexitet (och betydelse) kan det vara tillrådligt att flytta till plattformar med medfödd kapacitet, såsom hemlighetshanteringssystem eller miljöspecifika konfigurationstjänster för lagring av känsliga föremål. Dessa snabba lösningar hjälper dig dock att börja på en säkrare grund.

Tidsstämpel:

Mer från Mörk läsning