API Keys schützen: So verhindern Sie den Missbrauch durch VS Code Erweiterungen

Ashley Innocent

Ashley Innocent

21 May 2026

API Keys schützen: So verhindern Sie den Missbrauch durch VS Code Erweiterungen

Apidog für Unternehmen

On-Premises-Bereitstellung

SSO & RBAC

SOC 2 konform

Apidog Enterprise entdecken

Am 20. Mai 2026 bestätigte GitHub, dass Angreifer Daten aus etwa 3.800 seiner internen Code-Repositories gestohlen haben. Der Einstiegspunkt war keine Zero-Day-Schwachstelle in GitHubs Servern. Es war eine manipulierte VS Code-Erweiterung, die auf dem Laptop eines einzelnen Mitarbeiters installiert war. Sobald diese Erweiterung mit den gleichen Dateisystemberechtigungen wie der Entwickler ausgeführt wurde, konnte sie alles in Reichweite lesen: Quellcode, Konfigurationsdateien und alle Anmeldeinformationen im Arbeitsbereich. Wenn Sie API-Schlüssel vor der gleichen Art von Angriff schützen wollen, ist die Lektion unangenehm, aber einfach. Das schwächste Glied ist selten die Cloud. Es ist der Entwickler-Rechner und die darauf laufenden Tools.

TL;DR

Um API-Schlüssel vor einer kompromittierten IDE-Erweiterung oder einem geleakten Repository zu schützen, hören Sie auf, Live-Anmeldeinformationen dort zu speichern, wo Entwickler-Tools sie lesen können. Halten Sie Geheimnisse aus dem Quellcode und aus committeten .env-Dateien fern. Behandeln Sie .gitignore als Bequemlichkeit, nicht als Sicherheitskontrolle. Beschränken Sie jeden Schlüssel auf eine einzelne Umgebung, verwenden Sie kurzlebige Anmeldeinformationen mit den geringsten Privilegien und rotieren Sie diese nach einem Zeitplan. Tools wie Apidog helfen, indem sie API-Anmeldeinformationen in Umgebungsvariablen mit nur lokal gültigen Werten speichern, anstatt losem Klartext, der über Ihr Repository und Ihren Arbeitsbereich verstreut ist.

Schaltfläche

Warum die GitHub-Datenpanne ein Weckruf für jeden Entwickler ist

Der Vorfall bei GitHub liest sich wie ein klassischer Lieferkettenangriff. Die Bedrohungsgruppe, die als TeamPCP verfolgt wird, hat eine Geschichte der Trojanisierung von Paketen über die npm-, PyPI- und PHP-Ökosysteme hinweg. Diesmal gelangte die bösartige Nutzlast über eine VS Code-Erweiterung auf die Systeme. Laut einem Bericht von TechCrunch haben die Angreifer Daten aus etwa 3.800 internen Repositories exfiltriert und verkaufen den Datensatz nun für über 50.000 US-Dollar in Untergrundforen. GitHub gibt an, keine Anhaltspunkte dafür zu haben, dass Kundendaten, die außerhalb dieser internen Repos gespeichert waren, betroffen waren, und die Untersuchung dauert noch an.

Hier ist der Teil, der Sie innehalten lassen sollte. Eine VS Code-Erweiterung ist einfach Code. Wenn Sie eine installieren, läuft sie innerhalb des Editor-Prozesses mit Ihren Benutzerberechtigungen. Sie kann Dateien auflisten, öffnen und deren Inhalte lesen. Sie kann Dateiänderungen überwachen. Sie kann ausgehende Netzwerkanfragen stellen. Nichts davon ist eine Schwachstelle; es ist das Erweiterungsmodell, das wie vorgesehen funktioniert. Die meisten Erweiterungen benötigen Dateizugriff, um ihre Aufgabe zu erfüllen. Das Problem ist, dass eine bösartige oder kompromittierte Erweiterung genau denselben Zugriff nutzt, um alles zu sammeln, was sie findet.

Was findet sie? In einem typischen Projekt findet sie eine Menge. Eine .env-Datei im Stammverzeichnis des Repositories. Eine config/secrets.yml. Ein hartcodiertes Token in einem schnellen Testskript, das Sie eigentlich löschen wollten. AWS-Anmeldeinformationen in ~/.aws/credentials. Eine .npmrc mit einem Auth-Token. SSH-Schlüssel. Die TeamPCP-Gruppe ist derselbe Akteur hinter der „Mini Shai-Hulud“ npm-Wurm-Kampagne, die Entwickler-, CI/CD-, Cloud- und KI-Tooling-Anmeldeinformationen von infizierten Maschinen sammelte. Das Muster ist konsistent: Code auf einem Entwickler-Rechner ausführen, dann nach allem suchen, was wie eine Anmeldeinformation aussieht.

Dies ist nicht neu in der Art, nur im Ausmaß. Wir schrieben über ein ähnliches Expositionsmuster in unserer Analyse der API-Sicherheitslektionen aus der Vercel-Datenpanne, und die Mechaniken der Lieferkette stimmen eng mit dem überein, was wir im npm-Lieferkettensicherheitsleitfaden behandelt haben. Der GitHub-Vorfall ist dieselbe Geschichte mit einem größeren Namen. Die Frage, die es sich heute zu stellen lohnt, ist direkt: Wenn jetzt eine bösartige Erweiterung in Ihrem Editor laufen würde, was würde sie mitnehmen?

Hartcodierte Schlüssel und committete .env-Dateien sind eine ständige Schwachstelle

Die meisten Leaks von Anmeldeinformationen sind nicht raffiniert. Es ist ein Entwickler, der einen Schlüssel „vorläufig“ in den Code einfügt und ihn vergisst, oder eine .env-Datei, die versehentlich in einen Commit gerät. Beides schafft eine Schwachstelle, die unbegrenzt in Ihrem Repository verbleibt.

Hartcodierte Schlüssel sind die offensichtliche Sünde. Sie haben Code wie diesen gesehen:

import requests

# Quick test of the payments endpoint
STRIPE_KEY = "sk_live_51Qk2mNExampleKeyDoNotShipThis"

response = requests.post(
    "https://api.stripe.com/v1/charges",
    auth=(STRIPE_KEY, ""),
    data={"amount": 2000, "currency": "usd", "source": "tok_visa"},
)
print(response.json())

Dieser sk_live_-Schlüssel ist nun Teil der Datei. Er befindet sich in Ihrem Arbeitsverzeichnis, wo jede Erweiterung ihn lesen kann. Wird die Datei committet, ist der Schlüssel für immer in Ihrer Git-Historie, selbst nachdem Sie die Zeile in einem späteren Commit gelöscht haben. Jeder, der das Repository klont oder ein Tool, das es scannt, erhält den Schlüssel.

Die .env-Datei soll die Lösung sein. Die Idee ist gut: Geheimnisse aus dem Code heraushalten, zur Laufzeit laden. Eine echte .env-Datei sieht so aus:

# .env  (loaded at runtime, never meant to ship)
DATABASE_URL=postgres://app_user:Zk7%2BqN9wLx@db.internal:5432/payments
STRIPE_SECRET_KEY=sk_live_51Qk2mNExampleKeyDoNotShipThis
OPENAI_API_KEY=sk-proj-aB3dEf9hKlMnOpQrStUvWxYz1234567890
AWS_ACCESS_KEY_ID=AKIA4EXAMPLE7QRSTUVW
AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
JWT_SIGNING_SECRET=8f2a91c4e7b6d3508f2a91c4e7b6d350

Das ist besser als Hartcodierung. Aber beachten Sie, was es nicht geändert hat. Diese Datei befindet sich immer noch in Ihrem Arbeitsbereich, im Klartext, lesbar von jedem Prozess, den der Editor ausführt. Einer bösartigen Erweiterung ist es egal, ob Ihre Geheimnisse in app.py oder in .env stehen. Beides sind Dateien. Beides ist nur einen fs.readFileSync-Aufruf entfernt. Das .env-Muster löst das Problem der „Geheimnisse in der Git-Historie“ nur, wenn die Datei niemals committet wird, und es tut überhaupt nichts für das Problem eines „kompromittierten lokalen Tools“.

Die committete .env-Datei ist das schlimmste Ergebnis. Es ist alarmierend häufig. Ein Entwickler fügt .env zum Projekt hinzu, schreibt echte Schlüssel hinein und vergisst, sie vor dem ersten Commit zu ignorieren. Oder ein Teamkollege klont das Repository, sieht .env.example, kopiert es nach .env, trägt Produktionsschlüssel ein, und ein späteres git add . fügt es hinzu. Nun befinden sich Produktions-Anmeldeinformationen in der gemeinsamen Historie eines Repositories, das öffentlich sein, gespiegelt werden oder in einer Datenpanne wie der von GitHub landen könnte. Wir gehen tiefer auf den Aspekt des Repository-Leaks in unserem Begleitartikel über API-Dokumentation und Git-Repository-Sicherheit ein.

.gitignore ist keine Sicherheitskontrolle

Dies verdient einen eigenen Abschnitt, da das Missverständnis so weit verbreitet ist. Das Hinzufügen von .env zu .gitignore fühlt sich an, als würde man die Tür abschließen. Ist es aber nicht. Es ist eine Haftnotiz, die besagt: „Bitte nicht aufheben.“

Hier ist, was .gitignore tatsächlich tut. Es weist Git an, nicht verfolgte Dateien, die einem Muster entsprechen, zu überspringen, wenn Sie git add ausführen. Das ist der gesamte Umfang. Es hat drei Fehlerquellen, die für die Sicherheit relevant sind:

  1. Es tut nichts für bereits verfolgte Dateien. Wenn .env einmal committet wurde, bevor Sie die Ignore-Regel hinzugefügt haben, verfolgt Git sie weiterhin. Die Ignore-Regel wird stillschweigend überschrieben. Sie müssen git rm --cached .env ausführen und diese Entfernung committen, und das Geheimnis bleibt in jedem historischen Commit.
  2. Es tut nichts für die Datei auf der Festplatte. .gitignore ist eine Git-Anweisung. Die .env-Datei befindet sich weiterhin in Ihrem Arbeitsverzeichnis im Klartext. Eine bösartige VS Code-Erweiterung liest das Dateisystem, nicht den Git-Index. Ihre Ignore-Regel ist für sie unsichtbar. Dies ist der Fehlermodus, der für den GitHub-artigen Angriff am wichtigsten ist.
  3. Es ist nur ein Fehler von der Umgehung entfernt. git add -f .env ignoriert die Ignore-Regel. Das Gleiche gilt für das Hinzufügen der Datei über die Benutzeroberfläche der Quellcodeverwaltung eines Editors. Und auch für eine andere .gitignore in einem Unterverzeichnis, die das Muster nicht wiederholt.

Sie können den ersten Punkt selbst überprüfen. Wenn Sie vermuten, dass ein Geheimnis jemals committet wurde, zeigt Ihnen dieser Befehl Folgendes:

# List every commit that ever touched the file, even if it is "ignored" now
git log --all --full-history --oneline -- .env

# See the actual secret values that are still in history
git log -p --all -- .env | grep -iE "key|secret|token|password"

Wenn dies etwas zurückgibt, ist die Anmeldeinformation in dem Moment kompromittiert, in dem das Repository offengelegt wird. Die Lösung ist keine bessere Ignore-Regel. Die Lösung besteht darin, den Schlüssel zu rotieren und die Datei mit einem Tool wie git filter-repo aus der Historie zu entfernen. Die tiefere Lösung besteht darin, sicherzustellen, dass die Live-Anmeldeinformationen überhaupt nie in einer Datei waren.

.gitignore ist immer noch nützlich. Es fängt ehrliche Fehler ab und hält Ihre Diffs sauber. Verwechseln Sie es nur nicht mit einer Grenze, die ein Angreifer respektiert. Es ist Hygiene, keine Verteidigung.

Bereich eingrenzen, trennen, verkürzen, rotieren: Die vier Gewohnheiten, die das Schadensausmaß reduzieren

Sie können nicht garantieren, dass eine Anmeldeinformation niemals leckt. Sie können garantieren, dass eine geleakte Anmeldeinformation nahezu wertlos ist. Vier Gewohnheiten erledigen die meiste Arbeit.

Geheimnisse auf Umgebungen beschränken

Ein geleakter Schlüssel sollte nur eine Sache freischalten, nicht Ihr gesamtes System. Der häufigste Fehler bei der Bereichsbeschränkung ist die Verwendung desselben API-Schlüssels in Entwicklung, Staging und Produktion, weil es einfacher war. Wenn dieser Schlüssel leckt, fallen alle Umgebungen gleichzeitig.

Geben Sie jeder Umgebung ihre eigenen Anmeldeinformationen. Ihr lokaler Rechner verwendet einen Entwicklungsschlüssel mit Zugriff auf ein Sandbox-Projekt und Testdaten. Staging verwendet einen Staging-Schlüssel. Die Produktion verwendet einen Produktionsschlüssel, der an genau einem Ort existiert und niemals auf einen Laptop kopiert wird. Wenn der Entwicklungsschlüssel über eine kompromittierte Erweiterung leckt, erreicht der Angreifer eine Sandbox mit gefälschten Kunden. Das ist eine Belästigung, kein Vorfall.

Umgebungen richtig trennen

Umgebungstrennung ist mehr als drei verschiedene Schlüsselwerte. Es bedeutet, dass die Umgebungen einander nicht erreichen können. Die Entwicklungsdatenbank ist eine andere Datenbank, keine Lese-Replikation der Produktion. Der Staging-Zahlungsanbieter ist der Testmodus des Anbieters, sodass ein geleakter Staging-Schlüssel nichts Reales berechnet. Tools und Menschen sollten nicht in der Lage sein, eine „Dev“-Konfiguration auf Produktionsdaten zu richten, indem sie eine Variable umstellen.

Wenn die Trennung real ist, hat die Frage „Aus welcher Umgebung stammt dieser Schlüssel?“ eine klare Antwort, und diese Antwort sagt Ihnen genau, wie schlimm ein Leak ist.

Kurzlebige Schlüssel mit geringsten Privilegien verwenden

Zwei Eigenschaften entscheiden, wie viel Schaden ein gestohlener Schlüssel anrichtet.

Privilegien. Ein Schlüssel sollte die engste Menge von Berechtigungen tragen, die seine Aufgabe erfordert. Ein Frontend-Build, der einen öffentlichen Produktkatalog liest, benötigt einen schreibgeschützten Schlüssel, der auf diese eine Ressource beschränkt ist. Er benötigt keinen Schreibzugriff, keinen Abrechnungszugriff und schon gar keinen Admin-Zugriff. Die meisten API-Anbieter unterstützen bereichsbezogene Schlüssel oder feingranulare Tokens; GitHubs eigene feingranulare persönliche Zugriffstokens sind ein gutes Modell. Wenn Sie Token-Typen abwägen, erklärt unser Vergleich von API-Schlüsseln versus OAuth, wann kurzlebige OAuth-Tokens statische Schlüssel klar übertreffen.

Lebensdauer. Ein Schlüssel, der in einer Stunde abläuft, ist eine schlechte Beute. Bis ein Angreifer einen gestohlenen Datensatz kauft und sich um Ihren Schlüssel kümmert, ist er tot. Statische Schlüssel, die ewig leben, sind das Gegenteil: Sie funktionieren, bis jemand es bemerkt, was oft Monate dauert. Bevorzugen Sie kurzlebige Tokens, die bei Bedarf ausgegeben werden. Wo ein langlebiger Schlüssel unvermeidbar ist, legen Sie die kürzeste Ablaufzeit fest, die der Workflow toleriert.

Regelmäßig rotieren, nicht in Panik

Rotation bedeutet, den Wert einer Anmeldeinformation zu ändern, damit der alte nicht mehr funktioniert. Die meisten Teams rotieren nur nach einer Datenpanne, in Eile, unter Stress. Das ist der schlechteste Zeitpunkt, um festzustellen, dass Ihr Rotationsprozess undokumentiert ist.

Rotieren Sie stattdessen nach einem Kalender. Wählen Sie ein Intervall pro Anmeldeinformationsklasse; hochprivilegierte Produktionsschlüssel monatlich, Schlüssel mit geringerem Risiko vierteljährlich. Routinemäßige Rotation bewirkt zwei Dinge. Sie begrenzt die Nutzungsdauer jedes Leaks, das Sie noch nicht entdeckt haben, da ein heute gestohlener Schlüssel im nächsten Zyklus nicht mehr funktioniert. Und sie hält die Mechanik, den Wert in jeder konsumierenden Umgebung zu aktualisieren, geübt und unspektakulär. Wenn ein echter Vorfall eintritt, ist die Rotation ein Knopf, den Sie fünfzig Mal gedrückt haben, keine Feuerübung. Für eine umfassendere Behandlung siehe unsere Übersicht über API-Schlüssel-Management-Tools.

Anmeldeinformationen in Apidog-Umgebungsvariablen speichern, nicht lose in Ihrem Arbeitsbereich

Hier ist die ehrliche Darstellung. Apidog liefert eine eigene VS Code-Erweiterung und einen MCP-Server. Das Argument ist nicht: „Unser Tool ist immun gegen die Art von Angriff, die GitHub getroffen hat.“ Kein Client-seitiges Tool ist das. Das Argument ist, wo Ihre Geheimnisse liegen und wie exponiert sie sind, wenn etwas auf Ihrem Rechner nicht richtig funktioniert.

Denken Sie an das realistische Szenario. Sie entwickeln und testen den ganzen Tag APIs. Sie benötigen ein Bearer-Token, einen API-Schlüssel, eine Datenbankverbindungszeichenfolge. Der Standardweg ist, sie in eine .env-Datei oder ein Skript zu legen, damit Ihr Client sie verwenden kann. Das legt Live-Anmeldeinformationen in Klartextdateien im Arbeitsbereich ab, was genau die Oberfläche ist, die eine bösartige Erweiterung ausliest. Das Umgebungssystem von Apidog ändert, wo diese Werte liegen.

Umgebungsvariablen statt Klartextdateien

In Apidog speichern Sie Anmeldeinformationen als Umgebungsvariablen anstatt als losem Text in Ihrem Repository. Eine Anfrage referenziert die Variable namentlich, wie {{access_token}} in einem Authorization-Header, und Apidog löst sie zum Sendezeitpunkt auf. Der Header in Ihrer Anfragedefinition lautet Bearer {{access_token}}, nicht Bearer sk-proj-aB3dEf.... Das eigentliche Geheimnis befindet sich nicht in einer .env-Datei im Projekt-Stammverzeichnis, die darauf wartet, gelesen zu werden.

Dies ist aus demselben Grund wichtig, warum .env die Hartcodierung übertrifft, nur noch einen Schritt weiter. Die Anmeldeinformation ist keine Klartextzeile mehr in einer Datei, die neben Ihrem Quellcode liegt. Es ist ein verwalteter Wert innerhalb des API-Clients, indirekt referenziert.

Lokale Werte halten Geheimnisse auf Ihrem Rechner

Apidog zieht eine bewusste Grenze zwischen zwei Arten von Werten für jede Variable. Es gibt einen geteilten oder initialen Wert, der mit Apidogs Servern synchronisiert wird und für Ihr Team sichtbar ist. Und es gibt einen lokalen oder aktuellen Wert, der auf Ihrem Rechner verbleibt und niemals hochgeladen wird. Die offizielle Empfehlung ist explizit: Legen Sie sensible Daten wie Tokens und Passwörter in den lokalen Wert, damit sie Ihren Client niemals verlassen.

Der praktische Effekt ist, dass ein Teamkollege, der die Projektstruktur klont, den Variablennamen und die Form erhält, access_token, db_password und den Rest, aber nicht Ihr tatsächliches Geheimnis. Jeder Entwickler trägt seinen eigenen lokalen Wert ein. Kein Live-Produktionstoken gelangt in synchronisierte Projektdaten, und es gibt keine gemeinsame Datei mit echten Schlüsseln, die geleakt werden könnten.

Umgebungsverwaltung und Umgebungsisolation

Apidogs Umgebungsverwaltung basiert auf der Gewohnheit der Bereichsbeschränkung aus dem vorherigen Abschnitt. Sie definieren separate Umgebungen, Entwicklung, Staging, Produktion, und jede hat ihre eigene Basis-URL und ihre eigenen Variablenwerte. Die Variablen sind umgebungsbezogen: Nur die Werte der aktiven Umgebung sind wirksam, und das Wechseln der Umgebung wechselt den gesamten Satz von Anmeldeinformationen auf einmal.

Dies bietet Ihnen Umgebungsisolation von Grund auf. Ihre Variable payment_api_key enthält einen Sandbox-Schlüssel unter Entwicklung und einen Produktionsschlüssel unter Produktion. Sie bearbeiten niemals eine Anfrage, um zwischen ihnen zu wechseln; Sie wechseln die Umgebung. Da die Werte an die Umgebung gebunden sind, kann eine Entwicklungsanmeldeinformation nicht versehentlich in einem Produktionsaufruf landen, und ein Produktionsgeheimnis muss überhaupt niemals in Ihrer lokalen Entwicklungsumgebung existieren. Eine geleakte Entwicklungsumgebung offenbart Entwicklungswerte. Die Produktion bleibt unberührt.

Für Teams, die eine harte Grenze benötigen: Vault-Geheimnisse

Wenn Ihr Team Produktionsgeheimnisse überhaupt nicht den API-Client berühren lassen möchte, fügt Apidogs Enterprise-Plan eine Vault-Geheimnis-Funktion hinzu, die Geheimnisse direkt von HashiCorp Vault, Azure Key Vault oder AWS Secrets Manager abruft. Apidog speichert nur den Vault-Pfad und Metadaten. Die tatsächlichen Geheimniswerte werden bei Bedarf abgerufen, im lokalen Client verschlüsselt und niemals über das Projekt mit Teamkollegen geteilt. Das Zuhause der Anmeldeinformationen bleibt der dedizierte Secrets Manager, was genau der Ort ist, an dem eine Produktionsanmeldeinformation leben sollte.

Um den Workflow mit Umgebungsvariablen auszuprobieren, laden Sie Apidog herunter, erstellen Sie ein Projekt, öffnen Sie die Umgebungsverwaltung und fügen Sie Ihre Anmeldeinformationen als Umgebungsvariablen mit nur lokal gültigen Werten hinzu. Es dauert nur wenige Minuten und entfernt Live-Geheimnisse aus den Klartextdateien, die eine Erweiterung lesen kann.

Ein ehrlicher Vorbehalt. Das Verschieben von Geheimnissen nach Apidog reduziert die Anzahl der Klartext-Anmeldeinformationen in Ihrem Repository und Arbeitsbereich. Es macht Ihren Rechner nicht immun gegen ein kompromittiertes Tool. Das Prinzip der tiefgestaffelten Verteidigung gilt weiterhin: Überprüfen Sie die Erweiterungen, die Sie installieren, halten Sie Produktionsschlüssel mit den geringsten Privilegien und kurzlebig, und rotieren Sie sie nach Zeitplan. Apidog kümmert sich um den Teil „Wo leben die Anmeldeinformationen?“. Der Rest liegt immer noch bei Ihnen.

Fazit

Die GitHub-Datenpanne ist ein klares Signal. Angreifer haben erkannt, dass der Entwickler-Rechner mit seinen vertrauenswürdigen Tools und Klartext-Konfigurationsdateien ein leichteres Ziel ist als jeder Produktionsserver. Sie können diesen Rechner nicht perfekt sicher machen. Sie können sicherstellen, dass eine kompromittierte IDE-Erweiterung oder ein geleaktes Repository einem Angreifer nur sehr wenig in die Hände spielt.

Beginnen Sie mit einer Überprüfung. Öffnen Sie das Repository, in dem Sie am häufigsten arbeiten, und suchen Sie darin nach key, secret, token und password. Prüfen Sie, ob .env in Ihrer Git-Historie vorhanden ist. Was immer Sie finden, behandeln Sie es als offengelegt: Rotieren Sie es, und verschieben Sie dann den Live-Wert an einen Ort, an dem ein unerwünschtes Tool ihn nicht lesen kann. Laden Sie Apidog herunter und speichern Sie Ihre nächsten API-Anmeldeinformationen in Umgebungsvariablen anstelle einer Klartextdatei. Für den weiteren Kontext sind unsere Begleitartikel über selbst gehostete API-Tools nach der GitHub-Datenpanne und API-Schlüssel-Management-Tools gute weitere Lektüren.

Schaltfläche

FAQ

Kann eine VS Code-Erweiterung wirklich meine .env-Datei und API-Schlüssel lesen?

Ja. Eine VS Code-Erweiterung läuft innerhalb des Editor-Prozesses mit den Dateiberechtigungen Ihres Benutzerkontos. Sie kann Verzeichnisse auflisten, Dateien öffnen und deren Inhalte lesen, einschließlich .env-Dateien, Konfigurationsdateien und Anmeldeinformationsdateien wie ~/.aws/credentials. Dies ist normales Erweiterungsverhalten, da viele Erweiterungen legitimerweise Dateizugriff benötigen. Das Risiko besteht darin, dass eine bösartige oder kompromittierte Erweiterung denselben Zugriff nutzt, um Geheimnisse zu sammeln. Das ist der Mechanismus hinter der GitHub-Datenpanne vom Mai 2026.

Reicht es aus, .env zu .gitignore hinzuzufügen, um API-Schlüssel zu schützen?

Nein. .gitignore weist Git nur an, nicht verfolgte Dateien während git add zu überspringen. Es tut nichts für Dateien, die bereits vor der Existenz der Regel committet wurden, und das Geheimnis bleibt unabhängig davon in der Git-Historie. Es tut auch nichts für die Datei auf der Festplatte: Die .env-Datei befindet sich weiterhin in Ihrem Arbeitsbereich im Klartext und ist vollständig lesbar von jedem lokalen Tool oder jeder Erweiterung. Betrachten Sie .gitignore als eine Möglichkeit, ehrliche Fehler zu verhindern, nicht als Sicherheitsgrenze.

Was soll ich tun, wenn ich einen API-Schlüssel in meiner Git-Historie finde?

Behandeln Sie ihn sofort als kompromittiert, auch wenn das Repository privat ist. Rotieren Sie den Schlüssel zuerst, damit der offengelegte Wert nicht mehr funktioniert. Entfernen Sie dann die Datei aus der Historie mit einem Tool wie git filter-repo und pushen Sie die bereinigte Historie mit einem Force-Push, nachdem Sie sich mit Ihrem Team abgestimmt haben. Verschieben Sie schließlich die Live-Anmeldeinformationen aus jeder Klartextdatei, damit dasselbe Leak nicht erneut passieren kann. Siehe unseren Leitfaden zu API-Schlüssel-Management-Tools für fortlaufende Praktiken.

Wie reduziert das Speichern von API-Schlüsseln in Apidog meine Exposition?

Apidog ermöglicht es Ihnen, Anmeldeinformationen als Umgebungsvariablen zu speichern und sie in Anfragen namentlich zu referenzieren, sodass das eigentliche Geheimnis nicht in einer Klartext-.env-Datei in Ihrem Repository liegt. Jede Variable unterstützt einen nur lokalen Wert, der auf Ihrem Rechner verbleibt und niemals mit Servern oder Teamkollegen synchronisiert wird, was der Ort ist, an dem die Dokumentation das Speichern von Tokens und Passwörtern empfiehlt. Umgebungsbezogene Variablen halten auch Entwicklungs- und Produktions-Anmeldeinformationen getrennt. Es reduziert, wie viele Live-Geheimnisse in Dateien liegen, die ein Tool auslesen kann; es macht Ihren Rechner nicht immun gegen ein kompromittiertes Tool.

Hat Apidog auch eine VS Code-Erweiterung, und ist das ein Risiko?

Ja, Apidog liefert eine VS Code-Erweiterung und einen MCP-Server. Der Sinn dieses Artikels ist nicht, dass irgendein Tool immun gegen Lieferkettenangriffe ist; kein Client-seitiges Tool ist das. Der Punkt ist, wo Ihre Geheimnisse leben. Das Speichern von Anmeldeinformationen in Umgebungsvariablen mit nur lokal gültigen Werten oder in einer Vault-Integration bedeutet, dass weniger Klartextschlüssel offengelegt werden, falls irgendein Tool auf Ihrem Rechner, einschließlich Apidogs eigener Erweiterung, kompromittiert wird. Tiefgestaffelte Verteidigung, Überprüfung von Erweiterungen, geringste Privilegien und Rotation gelten weiterhin.

Was ist der Unterschied zwischen der Bereichsbeschränkung und der Rotation von API-Schlüsseln?

Die Bereichsbeschränkung begrenzt, was ein Schlüssel tun kann und wo er anwendbar ist: Ein Entwicklungsschlüssel erreicht nur eine Sandbox, und ein schreibgeschützter Schlüssel kann nicht schreiben. Rotation ändert den Wert eines Schlüssels nach einem Zeitplan, sodass der alte Wert nicht mehr funktioniert. Die Bereichsbeschränkung verringert den Schaden, den ein geleakter Schlüssel anrichten kann; die Rotation verringert das Zeitfenster, in dem ein geleakter Schlüssel nützlich bleibt. Sie wollen beides. Zusammen verwendet, schaltet ein gestohlener Schlüssel wenig frei und läuft bald ab.

Wie oft sollte ich API-Schlüssel rotieren?

Rotieren Sie nach einem festen Zeitplan und nicht erst nach einem Vorfall. Eine vernünftige Basis ist monatlich für hochprivilegierte Produktions-Anmeldeinformationen und vierteljährlich für Schlüssel mit geringerem Risiko, angepasst an Ihre Risikotoleranz und etwaige Compliance-Regeln. Geplante Rotation begrenzt die Nutzungsdauer von Leaks, die Sie noch nicht entdeckt haben, und hält den Rotationsprozess geübt, sodass ein echter Vorfall Routine und kein Notfall ist.

Sollten Produktions-API-Schlüssel jemals auf einem Entwickler-Laptop sein?

Im Idealfall: Nein. Eine Produktions-Anmeldeinformation sollte an so wenigen Orten wie möglich existieren, normalerweise in einem dedizierten Secrets Manager und der Produktionslaufzeit, niemals auf einen Entwickler-Rechner kopiert. Entwickler sollten mit Entwicklungs- oder Staging-Anmeldeinformationen arbeiten, die auf Nicht-Produktionsdaten beschränkt sind. Wird ein Laptop kompromittiert, erreicht der Angreifer eine Sandbox, nicht die Live-Kundensysteme. Apidogs Umgebungsisolation und Vault-Integration unterstützen dies, indem sie Produktionswerte aus lokalen Entwicklungsumgebungen heraushalten.

Praktizieren Sie API Design-First in Apidog

Entdecken Sie eine einfachere Möglichkeit, APIs zu erstellen und zu nutzen