KI-Tools & -Skripte
Astro-Sicherheitsprüfung
Prüfen Sie eine Astro-Website vor dem Deployment: Secrets in PUBLIC_-Variablen, vite.define oder Client-Islands, set:html mit Request-Daten, CORS, das jeden Origin zurückspiegelt, deaktiviertes checkOrigin, offene Redirects und schwache Session-Cookies.
Das bekommst du: 1 Datei · 47.04 KB · ZIP
Kaufoptionen ansehenProduktbeschreibung
Ein PUBLIC_STRIPE_SECRET_KEY in .env.production oder ein import.meta.env.OPENAI_API_KEY, der als Prop an eine client:load-Island übergeben wird, landet im JavaScript und HTML, das jeder Besucher herunterlädt. Ein ?q=-Wert, der an set:html übergeben wird, erlaubt es jedem, einen Link zu verschicken, der Skripte auf Ihrer Domain ausführt. Dieser Skill findet diese und die weiteren unten aufgeführten Astro-Fehler vor dem Deployment und erklärt, wie Sie jeden davon beheben.
Ihr Agent lässt einen Scanner über astro.config-Dateien, .astro-Seiten und -Komponenten (Frontmatter, Template und Skripte), Endpunkte, Middleware und Actions, .env-Dateien sowie Komponenten laufen, die PUBLIC_-Variablen lesen. Er kennt die Regeln von Astro: Nur PUBLIC_-Variablen und astro:env-Client-Felder erreichen den Browser, client:*-Props und define:vars-Werte werden in die Seite serialisiert, während server:defer-Props verschlüsselt werden, set:html wird nicht escaped, Astro.params ist nur auf vorgerenderten Seiten zur Build-Zeit festgelegt, und checkOrigin ist standardmäßig aktiv. Publishable-, Anon- und Browser-Kartenschlüssel, Feature-Schalter und aus einem Secret abgeleitete Flags (!!key) gelten als unbedenklich, .env-Dateien liest er nur in Ordnern mit Astro-Dateien, bei statischen Builds warnt er nicht vor Remote-Bildern, und er baut oder startet Ihr Projekt nie. Das Ergebnis lautet BLOCK, REVIEW oder NOT FLAGGED, jeweils mit Datei, Zeile, Begründung und einem sichereren Ansatz. Secrets werden nie ausgegeben.
Was geprüft wird
BLOCK (vor der Auslieferung beheben)
- A01: eine Variable mit Secret-Namen, die öffentlich gemacht wurde: PUBLIC_-Variablen in .env-Dateien und im Code, astro:env-Felder mit context "client" und PUBLIC_-Werte in bekannten Schlüsselformaten
- A02: vite.define, dem die gesamte Umgebung, eine Variable mit Secret-Namen oder ein literaler Schlüssel übergeben wird
- A03: Server-Secrets (oder Objekte, die sie enthalten), die an client:*-Islands, define:vars, HTML-Attribute oder den Seitentext übergeben werden
- A04: set:html mit Daten aus Query-String, Formular, Header oder On-Demand-Route, auch über einen Markdown-Renderer
- A05: CORS, das den Origin des Requests mit Credentials und ohne Allowlist in Access-Control-Allow-Origin kopiert
REVIEW (vor dem Release prüfen)
- A11: deaktiviertes security.checkOrigin
- A12: security.allowedDomains, das jedem weitergeleiteten Host vertraut
- A13: image.remotePatterns, die bei einer On-Demand gerenderten Website jeden Host erlauben
- A14: Redirects zu einem ?next=- oder Formularwert, der vorher nicht geprüft wird
- A15: Source Maps, die mit dem Build veröffentlicht werden
- A16: Session- oder Token-Cookies, die ohne httpOnly und secure gesetzt werden
- A17: astro:env-Secrets, die auf dem Server als public markiert sind oder einen literalen Standardwert haben
- A18: CORS "*" zusammen mit Credentials
Was enthalten ist
- Der Scanner (Python 3.9+, nur Standardbibliothek)
- Ein Regelleitfaden mit Begründung, sichererem Ansatz und offizieller Quelle für jede Regel
- Ein riskanter und ein sicherer Beispielshop (Konfiguration, .env, Seiten und API-Routen) sowie der echte Bericht, den der Scanner für den riskanten Shop erstellt
Grenzen
Er liest jede Datei für sich und verfolgt Werte nur über einfache Zuweisungen in derselben Datei, daher werden Daten, die über importierte Helfer oder Elternkomponenten weitergereicht werden, nicht verfolgt. Hosting-Header, CDN-Regeln und ob ein Endpunkt oder eine Action prüft, wer der Nutzer ist, sind ihm nicht bekannt, Markdown- und MDX-Inhalte werden nicht gelesen, und JSX-, TSX-, Vue- und Svelte-Komponenten werden nur auf PUBLIC_-Secrets geprüft. NOT FLAGGED ist keine Garantie.
Inhalt
Eine ZIP-Datei mit 22 Dateien: SKILL.md, der Scanner in scripts/ (7 Python-Dateien), references/rules.md (jede Regel mit Begründung und sichererem Ansatz) und examples/ (12 Beispieldateien plus report.md, die echte Scanner-Ausgabe für das riskante Beispiel).
So verwenden Sie es: Dies ist ein Agent-Skill: ein Ordner mit einer SKILL.md-Datei und Python-Skripten, die ein KI-Coding-Agent wie Claude Code, Cursor oder Codex CLI ausführen kann. Entpacken Sie ihn in den Skills-Ordner Ihres Agenten (für Claude Code: ~/.claude/skills/) und bitten Sie Ihren Agenten dann, Ihr Projekt zu prüfen. Die Skripte laufen auch eigenständig mit Python 3.9 oder neuer, ohne dass etwas installiert werden muss. Sie lesen nur Ihre Dateien: kein Netzwerkzugriff, und nichts wird irgendwohin gesendet.
Das bekommst du
1 Datei · 47.04 KB
- astro-safety-check-1.0.0.zipZIP · 47.04 KB
KI-Tools & -Skripte
Astro-Sicherheitsprüfung
Prüfen Sie eine Astro-Website vor dem Deployment: Secrets in PUBLIC_-Variablen, vite.define oder Client-Islands, set:html mit Request-Daten, CORS, das jeden Origin zurückspiegelt, deaktiviertes checkOrigin, offene Redirects und schwache Session-Cookies.
Getly hat die hochgeladenen Dateien geöffnet und nichts gefunden, was das Öffnen verhindern würde. Das ist kein Virenscan und keine Qualitätsbewertung.
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 47.04 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



