Ressourcen · 37

Sichern Sie eine GraphQL-API: Autorisierung, Abfragekosten und Beweise

Erzwingen Sie Objekt- und Feldrechte, binden Sie Serverarbeit und testen Sie Verweigerungspfade.

Aktualisiert · 2 min

Bücher über Internet und Technik in einer Bibliothek Illustration · fiktive Szene

Wozu dieser Leitfaden beiträgt

  • Ordnen Sie das verfügbar gemachte Schema zu
  • Ausübungsberechtigungen
  • Begrenzte Abfragekosten
  • Ablehnungen überprüfen

Kurzcheck

  • Kann ein Konto das Objekt eines anderen Kontos lesen?
  • Folgt ein sensibles Feld der Zugriffsentscheidung seines übergeordneten Feldes?
  • Was kosten Tiefe, Aliase und Paginierung zusammen?
  • Welche Details dringen durch Fehler durch?
  • Wer beobachtet Verleugnungen und Beschimpfungen?

Schritt-für-Schritt-Anleitung

  1. 1

    Inventurarbeiten

    Listentypen, Felder, Mutationen, Rollen, Objektbesitzer und sensible Daten. Beziehen Sie aktuelle Clientabfragen und selten verwendete Pfade ein.

    Lieferinhalt: Operation, Rolle, Objekt und Feldmatrix.

  2. 2

    Testen Sie jede Zugriffsentscheidung

    Erstellen Sie unterschiedliche Testkonten und tauschen Sie Objekt-IDs aus, einschließlich verschachtelter Objekte. Resolver müssen die Autorisierung durchsetzen, bevor sie Daten zurückgeben.

    Lieferbar: reproduzierbare zugelassene und abgelehnte Fälle.

  3. 3

    Gebundene Serverarbeit

    Messen Sie die tatsächlichen Kosten von Feldern und Sammlungen. Testen Sie Tiefe, Breite, Aliase, Paginierung, Stapelung und Zeit zusammen und legen Sie dann geeignete Grenzen fest.

    Liefergegenstand: Kostenpolitik und gegnerischer Abfragesatz.

  4. 4

    Reduzieren Sie unnötige Belichtung

    Entscheiden Sie sich für eine Introspektion des Kontexts, blenden Sie interne Fehlerdetails aus und entfernen Sie Felder, die mehr verraten, als Kunden benötigen.

    Liefergegenstand: Überprüfte öffentliche Konfiguration und Fehlerantworten.

  5. 5

    Beobachten Sie mit Zurückhaltung

    Protokollieren Sie nützliche technische Identität, Betrieb, Kosten, Ablehnung und Korrelation und schließen Sie dabei Geheimnisse und sensible Argumente aus. Weisen Sie den Eigentümer der Warnung zu.

    Liefergegenstand: Dashboard und Untersuchungsverfahren.

  6. 6

    Wiederholung nach Änderung

    Wenn sich ein Feld, eine Rolle oder ein Mandant ändert, wiederholen Sie Berechtigungs- und Lastfälle. Überprüfen Sie alte Abfragen, die jetzt das überarbeitete Diagramm durchlaufen.

    Liefergegenstand: Regressionsergebnis und Freigabeentscheidung.

Managementindikatoren

IndikatorWas es misstErste Aktion
ZugangObjekt- und Feldfälle wurden wie erwartet abgelehntDen Resolver reparieren
KostenSchwere Abfragen durch Richtlinie enthaltenFelder und Grenzen anpassen
FehlerÖffentliche Antworten ohne interne DetailsBelichtete Details reduzieren
RegressionClient-Vorgänge werden nach Änderung wiedergegebenBlockieren Sie unbeabsichtigten Bruch

Häufige Fallstricke

  • Allein dem Endpunktzugriff vertrauen
  • Tiefe begrenzen, Breite aber ignorieren
  • Autorisierung verschachtelter Felder vergessen
  • Argumente mit sensiblen Daten protokollieren

Häufig gestellte Fragen

Entfernt GraphQL die normale API-Autorisierung?

Nein. Jeder Objekt- und Feldzugriff erfordert weiterhin eine identitäts- und kontextbasierte Entscheidung.

Reicht es aus, die Selbstbeobachtung zu deaktivieren?

Nein. Es reduziert möglicherweise die Schema-Exposition, korrigiert jedoch nicht die Zugriffs- oder Abfragekosten.

Reicht eine Tiefenbegrenzung?

Nein. Aliase, Breite, Listen und feldspezifische Kosten spielen ebenfalls eine Rolle.

Offizielle Referenzen

Die Referenzen unterstützen die Methode. Passen Sie die Prüfungen an Ihren Kontext an; sie stellen keine Zertifizierung dar. Originalreferenztitel und Quelldokumente können in einer anderen Sprache verfasst sein.