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
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
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
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
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
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
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
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
| Indikator | Was es misst | Erste Aktion |
|---|---|---|
| Zugang | Objekt- und Feldfälle wurden wie erwartet abgelehnt | Den Resolver reparieren |
| Kosten | Schwere Abfragen durch Richtlinie enthalten | Felder und Grenzen anpassen |
| Fehler | Öffentliche Antworten ohne interne Details | Belichtete Details reduzieren |
| Regression | Client-Vorgänge werden nach Änderung wiedergegeben | Blockieren 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.






