Zum Hauptinhalt springen

Befehlsmenü

Zu einer Seite springen oder den Katalog durchsuchen

KI-Tools & -Skripte

Sicherheitsprüfung für GraphQL-APIs

Prüfen Sie GraphQL-Server und -Schemas vor dem Deployment: erzwungene Introspektion, Passwort-Hashes und API-Schlüssel in Ausgabetypen, fehlende Tiefenlimits, GraphiQL im Produktivbetrieb, deaktivierten CSRF-Schutz, Stacktraces, Listen ohne Paginierung und Batch-Anfragen.

$5.00

Das bekommst du: 1 Datei · 45.78 KB · ZIP

Kaufoptionen ansehen

Produktbeschreibung

Ein einziges introspection: true in Ihren Apollo-Server-Optionen gibt jedem Anfragenden das gesamte Produktionsschema preis, einschließlich administrativer Mutationen. Ein passwordHash-Feld im Typ User lässt jeden Client über post.author oder einen anderen Pfad zu diesem Typ darauf zugreifen. Dieser Skill findet diese und sieben weitere GraphQL-Fehler vor dem Deployment und zeigt, wie Sie jeden davon beheben.

Ihr Agent führt einen Scanner für Ihre Schemadateien .graphql, .gql und .graphqls, Schematext im Code (gql-Tags, #graphql-Strings, typeDefs, Ariadne gql) und den Servercode von Apollo Server 2 bis 5, NestJS GraphQL, GraphQL Yoga, Mercurius, express-graphql, graphql-http, TypeGraphQL, Strawberry, graphene und graphene-django, Ariadne und gqlgen aus. Er unterscheidet Ausgabe- von Eingabetypen, kennt die Standardwerte jeder Bibliothek (Apollo schaltet Introspektion bei NODE_ENV gleich production ab; Yoga und Strawberry stellen GraphiQL bereit, sofern es nicht deaktiviert wird; die Startdatei server.go von gqlgen aktiviert Introspektion), akzeptiert Einstellungen mit einer Prüfung, die sie aus dem Produktivbetrieb heraushält (NODE_ENV !== 'production', isDev-Ternärausdrücke, if settings.DEBUG), jedoch keine Prüfungen wie NODE_ENV !== 'test', und berücksichtigt alle gescannten Dateien, bevor er ein fehlendes Tiefenlimit oder einen fehlenden Introspektionsschalter meldet. Login-Daten wie AuthPayload.token, Verknüpfungen wie token: Token, Paginierungstoken wie nextToken und Schlüsselfelder hinter einer Auth-Direktive, einem Guard oder einer Berechtigungsklasse werden nicht beanstandet. Er führt weder Ihren Server noch Ihre App aus. Er liefert BLOCKIEREN, PRÜFEN oder NICHT MARKIERT, jeweils mit Datei, Zeile, Begründung und sichererem Vorgehen. Geheimnisse werden niemals ausgegeben.

Was geprüft wird

BLOCKIEREN (vor der Veröffentlichung beheben)

  • G01: erzwungene Introspektion ohne Prüfung, die sie aus dem Produktivbetrieb heraushält (introspection: true in Apollo Server oder NestJS, introspection=True in Ariadne)

  • G02: Passwörter, Passwort-Hashes, US-Sozialversicherungsnummern, Kartennummern sowie als Text gespeicherte Geheimnisse, Token und API-Schlüssel in Ausgabetypen (SDL, Strawberry, graphene, @ObjectType-Klassen von NestJS und TypeGraphQL, User-Typen von graphene-django oder strawberry-django mit allen Feldern)

PRÜFEN (vor der Veröffentlichung prüfen)

  • G11: Server ohne Begrenzung der Abfragetiefe oder -kosten im gesamten Projekt

  • G12: standardmäßig aktivierte Introspektion (Yoga, Mercurius, express-graphql, graphql-http, Strawberry, graphene, Ariadne, gqlgen NewDefaultServer und die von gqlgen init erzeugte Zeile extension.Introspection)

  • G13: GraphiQL, GraphQL Playground oder Apollo Sandbox im Produktivbetrieb

  • G14: csrfPrevention: false oder eine mit csrf_exempt umschlossene Django-GraphQL-View

  • G15: an Clients gesendete Stacktraces und unverarbeitete Fehler (includeStacktraceInErrorResponses, debug, maskedErrors: false, formatError mit error.stack)

  • G16: Listen in Root-Abfragen ohne Argumente für first, limit, page oder cursor

  • G17: Batch-Anfragen ohne Begrenzung (allowBatchedHttpRequests, Standardwerte von Apollo Server 3, allowBatchedQueries, graphene-django batch=True)

Im Lieferumfang

  • Der Scanner (Python 3.9+, nur Standardbibliothek)

  • Ein Regelhandbuch mit Begründung und sichererem Vorgehen zu jeder Regel

  • Ein unsicheres und ein sicheres Beispielprojekt (eine Shop-API mit Apollo Server 4 samt Schema und Resolvern sowie ein Berichtsdienst mit Strawberry) und der tatsächliche Scanner-Bericht für das unsichere Beispiel

Grenzen

Der Scanner liest Dateitext. Serveroptionen, die in einer anderen Datei erstellt und als Variable übergeben werden, zur Laufzeit erstellte Schemas, Berechtigungsprüfungen in Resolvern sowie Gateway- oder Router-Einstellungen (Apollo Router, Hasura, PostGraphile) werden nicht nachverfolgt. Eine Umgebungsprüfung wird direkt um die Einstellung herum erkannt, nicht als frühzeitige Rückgabe oder Feature-Flag. Rate-Limiting, Authentifizierung, gespeicherte Operationen, CORS und Schwachstellen in Abhängigkeiten werden nicht geprüft. NICHT MARKIERT ist keine Garantie.

Archivinhalt

Eine ZIP-Datei mit 20 Dateien: SKILL.md, der Scanner in scripts/ (6 Python-Dateien), references/rules.md (jede Regel mit Begründung und sichererem Vorgehen) und examples/ (11 Beispieldateien sowie report.md, die tatsächliche Scanner-Ausgabe für das unsichere Beispiel).

Anwendung: Dies ist ein Agenten-Skill: ein Ordner mit einer SKILL.md-Datei und Python-Skripten, die ein KI-Programmieragent wie Claude Code, Cursor oder Codex CLI ausführen kann. Entpacken Sie das Archiv in den Skills-Ordner Ihres Agenten (für Claude Code: ~/.claude/skills/) und bitten Sie Ihren Agenten anschließend, Ihr Projekt zu prüfen. Die Skripte lassen sich auch eigenständig mit Python 3.9 oder neuer ausführen, ohne zusätzliche Installation. Sie lesen nur Ihre Dateien: kein Netzwerkzugriff, und es wird nichts versendet.

Das bekommst du

1 Datei · 45.78 KB

  • graphql-api-safety-check-1.0.0.zipZIP · 45.78 KB

In Getly Pro enthaltenPro holen

LizenzKommerzielle Nutzung erlaubt
Veröffentlicht12. Nov. 2026
Dateigröße45.78 KB
DateiformatZIP
Versionv1.0

Tags

graphqlapolloapibackendsecurityai agent skill
R
RR HH

Häufige Fragen

Erhalte ich sofort Zugriff?

Ja. Dies ist ein digitales Produkt - du kannst es direkt nach dem Kauf aus deiner Bibliothek herunterladen.

Darf ich es für kommerzielle Projekte nutzen?

Ja. Kommerzielle Nutzung ist erlaubt: im eigenen Business und in dem, was du verkaufst. Die Datei selbst darfst du nicht weiterverkaufen oder verbreiten.

Wie sind die Rückerstattungsbedingungen?

Du kannst innerhalb von 30 Tagen eine Rückerstattung anfordern. Stimmt etwas nicht, fordere sie bei deiner Bestellung an - das Getly-Team prüft sie.

Welche Dateiformate und -größen erhalte ich?

Du lädst 1 Datei herunter - ZIP - insgesamt 45.78 KB.

Erhalte ich kostenlose Updates?

Ja - wenn der Verkäufer eine neue Version veröffentlicht, kannst du die aktuellen Dateien kostenlos erneut aus deiner Bibliothek herunterladen. Aktuelle Änderungen findest du im Changelog.

Preis

$5.00