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.
Das bekommst du: 1 Datei · 45.78 KB · ZIP
Kaufoptionen ansehenProduktbeschreibung
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
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.
In Getly Pro enthaltenPro holen
Tags
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



