Prüfpunkte

Jede Prüfung hat eine feste ID. Ihr Code verzweigt auf die ID, Menschen sehen den Text. Bestehende IDs ändern sich nicht, es kommen höchstens neue dazu. Zurzeit sind es 63, davon 16 für geheime Schlüssel in den JavaScript-Dateien einer App.

So sieht ein Befund aus

Ein Befund ist eine Stelle, an der etwas fehlt oder auffällt. Jeder Befund in der Antwort hat diese Form.

Befund
{
  "id": "code.secret.supabase_service_role",
  "sev": "warn",
  "critical": true,
  "label": "Supabase-Generalschlüssel öffentlich (service_role, 1×)",
  "why": "Mit diesem Schlüssel lässt sich die komplette Datenbank lesen, ändern und löschen. …"
}
FeldBedeutung
idFeste ID aus der Tabelle unten. Darauf verzweigt Ihr Code. Fehlt bei gesperrten Befunden.
sevwarn (Warnung, sollte behoben werden) oder info (Hinweis, ohne Eile).
labelKurzer Titel für Menschen. Kann Details enthalten, etwa den Namen eines Cookies.
whyEin bis zwei Sätze dazu, was der Befund bedeutet.
refsNur bei version.vulnerable: CVE- oder OSV-Kennungen, höchstens sechs.
sourceNur bei version.vulnerable: woher der Treffer stammt, etwa OSV.dev.
standardsNur in der API (/api/v1/scan): Zuordnung zu cwe, owasp (Top 10:2025), asvs (5.0), bsi (IT-Grundschutz) und law, siehe Zuordnung zu Standards.
criticalNur bei offen liegenden geheimen Schlüsseln in den JavaScript-Dateien: true. Jeder solche Befund zieht 40 Punkte ab.
lockedNur ohne bezahlten Plan: true bei gesperrten Befunden. Dann ist label leer, id, why, refs und source fehlen.

Ein Befund bedeutet immer „möglicherweise betroffen“. Bewiesen ist damit nichts, denn wir lesen nur, was jeder Besucher sieht. Bei Schlüsseln nennen wir Art und Fundstelle und zeigen den Wert nur gekürzt, etwa sk_live_…9f2A. Den vollständigen Wert geben wir nie aus.

Gesperrter Befund

Ohne bezahlten Plan sind nur 2 Befunde vollständig. Die übrigen stehen an ihrer Stelle in der Liste, aber nur mit Stufe und locked: true. Prüfen Sie locked, bevor Ihr Code auf id verzweigt. Vollständige Berichte gibt es ab Business, siehe Gekürzte Berichte.

Gesperrter Befund
{
  "sev": "info",
  "label": "",
  "locked": true
}

Verschlüsselung und Zertifikat

Ob Ihre Seite verschlüsselt erreichbar ist und das Zertifikat gilt, also das Schloss im Browser. Fehlt eines davon, können Dritte mitlesen oder Besucher sehen eine Warnseite. Befunde stehen in findings.https und findings.tls.

IDStufeWas geprüft wirdStandardsHilfe
https.missingWarnungKein HTTPS
Die Seite landet am Ende unverschlüsselt auf http. Eingaben wie Passwörter gehen lesbar durchs Netz, die Note ist immer F.
CWE-319 · OWASP A04:2025 · ASVS V12.2.1 · BSI APP.3.2, TR-03116-4Erklärung
https.no_redirectWarnungKeine Weiterleitung von http auf https
Die Startseite antwortet über http:// mit Inhalt statt auf https:// umzuleiten. Wer die Adresse so aufruft, surft unverschlüsselt. Mit HSTS nur ein Hinweis, weil wiederkehrende Besucher geschützt sind.
CWE-319 · OWASP A04:2025 · ASVS V4.1.2, V12.2.1 · BSI APP.3.2Erklärung
tls.invalidWarnungZertifikat ungültig
Browser zeigen eine Warnseite statt Ihrer Seite, etwa weil das Zertifikat nicht zur Adresse passt.
CWE-295 · OWASP A07:2025 · ASVS V12.2.2 · BSI APP.3.2Erklärung
tls.expiredWarnungZertifikat abgelaufen
Das Ablaufdatum ist vorbei. Browser zeigen eine Warnseite statt Ihrer Seite.
CWE-324 · OWASP A04:2025 · ASVS V12.2.2 · BSI APP.3.2Erklärung
tls.expiringWarnungZertifikat läuft bald ab
Unter 14 Tagen eine Warnung, unter 30 Tagen ein Hinweis. Danach sehen Besucher eine Warnseite.
CWE-324 · OWASP A04:2025 · ASVS V12.2.2 · BSI APP.3.2Erklärung
tls.old_protocolWarnungVeraltete Verschlüsselung
Unsere Verbindung lief über TLS 1.0 oder 1.1. Beide gelten als unsicher, das BSI setzt mindestens TLS 1.2 voraus.
CWE-327 · OWASP A04:2025 · ASVS V12.1.1 · BSI CON.1, TR-03116-4Erklärung

Schutz-Einstellungen für den Browser

Hausregeln, die Ihr Server dem Browser bei jedem Aufruf mitgibt, etwa: keine fremden Skripte ausführen. Fehlen sie, führt der Browser auch eingeschleusten Code aus. Befunde stehen in findings.headers.

IDStufeWas geprüft wirdStandardsHilfe
header.csp.missingWarnungKein Schutz gegen eingeschleuste Skripte
Weder der Header Content-Security-Policy noch ein gleichwertiges meta-Tag mit script-src oder default-src ist gesetzt. Gelangt fremder Code in die Seite, führt der Browser ihn aus.
OWASP A02:2025 · ASVS V3.4.3 · BSI APP.3.1Erklärung
header.csp.weakHinweisCSP hält eingeschleuste Skripte kaum auf
Die Content-Security-Policy ist gesetzt, regelt aber keine Skripte, erlaubt 'unsafe-inline' ohne Nonce oder Hash oder lässt Skripte von beliebigen Adressen zu. Bewertet wie beim CSP Evaluator von Google. Statt 25 gibt es dann 10 Punkte.
OWASP A02:2025 · ASVS V3.4.3 · BSI APP.3.1Erklärung
header.hsts.missingWarnungVerschlüsselung nicht dauerhaft festgelegt
Der Header Strict-Transport-Security (HSTS) fehlt oder steht auf max-age=0. In offenen Netzen lassen sich Besucher dann auf eine unverschlüsselte Fassung umlenken.
CWE-319 · OWASP A04:2025 · ASVS V3.4.1 · BSI APP.3.2Erklärung
header.frame.missingHinweisFremde Seiten dürfen Ihre Seite einbetten
Weder X-Frame-Options noch frame-ancestors in der CSP ist gesetzt. Nutzer können so zu unsichtbaren Klicks verleitet werden.
CWE-1021 · OWASP A06:2025 · ASVS V3.4.6 · BSI APP.3.1Erklärung
header.xcto.missingHinweisBrowser dürfen Dateitypen raten
Der Header X-Content-Type-Options fehlt. Eine hochgeladene Datei kann dann als Skript laufen.
OWASP A02:2025 · ASVS V3.4.4 · BSI APP.3.1Erklärung
header.referrer.missingHinweisVolle Adressen gehen an fremde Seiten
Der Header Referrer-Policy fehlt. Beim Klick auf einen Link kann die ganze Adresse mitgehen, samt Kennungen darin.
OWASP A02:2025 · ASVS V3.4.5 · BSI APP.3.1Erklärung
header.permissions.missingHinweisKamera, Mikrofon und Standort nicht gesperrt
Der Header Permissions-Policy fehlt. Eingebettete fremde Inhalte dürfen nach diesen Funktionen fragen.
OWASP A02:2025 · BSI APP.3.1Erklärung
header.server.versionHinweisServer nennt seine Version
Der Server-Header enthält eine Versionsnummer. Wer eine Lücke darin kennt, findet die Seite schneller.
CWE-497 · OWASP A01:2025 · ASVS V13.4.6 · BSI APP.3.2Erklärung
header.poweredbyHinweisSeite nennt ihre Technik
Der Header X-Powered-By ist gesetzt. Gebraucht wird er nicht.
CWE-497 · OWASP A01:2025 · ASVS V13.4.6 · BSI APP.3.2Erklärung

Schutz gegen gefälschte Mails

Ob ein Eintrag bei Ihrem Domain-Anbieter festlegt, wer Mails in Ihrem Namen senden darf. Ohne ihn kommen gefälschte Rechnungen mit Ihrer Absenderadresse leichter durch. Befunde stehen in findings.email.

IDStufeWas geprüft wirdStandardsHilfe
email.spf.missingWarnungAbsender nicht festgelegt (SPF)
Auf der Domain steht kein TXT-Eintrag mit v=spf1. Fälschungen mit Ihrer Absenderadresse fallen Postfächern schwerer auf.
CWE-290 · OWASP A07:2025 · BSI APP.5.3Erklärung
email.spf.allow_allWarnungSPF erlaubt jeden Absender
Der SPF-Eintrag endet auf +all. Jeder Server darf damit in Ihrem Namen senden.
CWE-290 · OWASP A07:2025 · BSI APP.5.3Erklärung
email.dmarc.missingWarnungKeine Regel für gefälschte Mails (DMARC)
Unter _dmarc steht kein TXT-Eintrag mit v=DMARC1. Gefälschte Mails in Ihrem Namen werden zugestellt.
CWE-290 · OWASP A07:2025 · BSI APP.5.3Erklärung
email.dmarc.noneHinweisDMARC meldet nur
Die Regel p=none meldet Fälschungen, weist aber keine ab.
CWE-290 · OWASP A07:2025 · BSI APP.5.3Erklärung
email.spf.too_many_lookupsWarnungSPF mit zu vielen DNS-Abfragen
Der SPF-Eintrag löst samt eingebundener Einträge mehr als 10 DNS-Abfragen aus (RFC 7208). Viele Postfächer werten ihn dann als Fehler.
CWE-290 · OWASP A07:2025 · BSI APP.5.3Erklärung
email.transport.unprotectedHinweisKein MTA-STS und kein DANE
Die Domain empfängt Mails, legt aber nicht fest, dass sie nur verschlüsselt zugestellt werden. Ein Angreifer im Netz kann die Verschlüsselung zwischen Mailservern unterdrücken.
CWE-319 · OWASP A04:2025 · BSI APP.5.3, TR-03108Erklärung

Domain und DNS

Öffentliche Einträge Ihrer Domain: ob eine verwaiste Weiterleitung Fremden Ihre Adresse überlässt, wer Zertifikate ausstellen darf, ob DNSSEC aktiv ist und wohin Sicherheitsforscher Lücken melden. Befunde stehen in findings.dns.

IDStufeWas geprüft wirdStandardsHilfe
dns.takeoverWarnungAdresse kann übernommen werden
Die Adresse zeigt per CNAME auf einen Dienst wie GitHub Pages, Heroku, Amazon S3 oder Shopify, dessen Ziel nicht mehr existiert (erkannt an der Fehlerseite des Dienstes). Wer es dort anlegt, liefert unter Ihrer Adresse eigene Inhalte aus.
OWASP A02:2025 · BSI APP.3.6Erklärung
dns.caa.missingHinweisKein CAA-Eintrag
Jede Zertifizierungsstelle darf ein Zertifikat für die Domain ausstellen.
OWASP A02:2025 · BSI APP.3.6, CON.1Erklärung
dns.dnssec.missingHinweisKein DNSSEC
Die Domain ist nicht signiert, DNS-Antworten lassen sich unterwegs fälschen. Abgefragt über DNS-over-HTTPS bei Cloudflare.
OWASP A02:2025 · BSI APP.3.6Erklärung
dns.securitytxt.missingHinweisKeine security.txt
Unter /.well-known/security.txt steht keine Kontaktadresse für Sicherheitsmeldungen (RFC 9116).
BSI DER.2.1Erklärung
dns.securitytxt.expiredHinweissecurity.txt abgelaufen
Das Datum unter Expires liegt in der Vergangenheit.
BSI DER.2.1Erklärung

Veraltete Software

Bausteine Ihrer Seite in Versionen, für die Sicherheitslücken öffentlich bekannt sind. Befunde stehen in findings.versions.

IDStufeWas geprüft wirdStandardsHilfe
version.eolWarnungSoftware ohne Sicherheits-Updates
Für diese Version liefert der Hersteller keine Updates mehr (Quelle: endoflife.date). Neue Lücken bleiben offen.
CWE-1104 · OWASP A03:2025 · ASVS V15.2.1 · BSI OPS.1.1.3Erklärung
version.vulnerableWarnungSoftware mit bekannten Lücken
Für die erkannte Version gibt es Einträge bei OSV.dev oder in unserer eigenen Liste. Wir melden sie als „möglicherweise betroffen“.
CWE-1395 · OWASP A03:2025 · ASVS V15.2.1 · BSI OPS.1.1.3Erklärung

Quelltext und JavaScript-Dateien

Was jeder Besucher im Quelltext und in den JavaScript-Dateien Ihrer App lesen kann, zum Beispiel Schlüssel für Datenbank, KI-Dienste oder Zahlungen. Befunde stehen in findings.exposure.

IDStufeWas geprüft wirdStandardsHilfe
code.secret_patternWarnungMöglicher Schlüssel unter verräterischem Namen
Im HTML steht ein Wert unter einem Namen wie client_secret, api_secret oder access_token. Jeder Besucher kann ihn kopieren. Wir nennen den Namen und zeigen den Wert nur gekürzt, nie vollständig. Schlüssel mit bekanntem Präfix (Stripe, AWS, OpenAI …) melden wir unter ihrer eigenen ID.
CWE-798 · CWE-540 · OWASP A07:2025 · ASVS V13.3.1 · BSI CON.10Erklärung
code.secret.supabase_service_roleWarnungSupabase-Generalschlüssel öffentlich
service_role-Schlüssel im Quelltext oder in den JavaScript-Dateien. Damit kann jeder die ganze Datenbank lesen, ändern und löschen, an allen Zugriffsregeln vorbei.
CWE-798 · CWE-540 · OWASP A07:2025 · ASVS V13.3.1, V8.3.1 · BSI CON.10Erklärung
code.secret.supabase_secret_keyWarnungGeheimer Supabase-Schlüssel öffentlich
sb_secret-Schlüssel im Quelltext oder in den JavaScript-Dateien. Damit kann jeder auf die ganze Datenbank zugreifen.
CWE-798 · CWE-540 · OWASP A07:2025 · ASVS V13.3.1, V8.3.1 · BSI CON.10Erklärung
code.secret.llm_keyWarnungKI-Schlüssel öffentlich
Schlüssel für OpenRouter, Groq, xAI, Hugging Face, Replicate, Perplexity oder ElevenLabs im Quelltext oder in den JavaScript-Dateien. Jeder kann damit auf Ihre Rechnung Anfragen stellen.
CWE-798 · CWE-540 · OWASP A07:2025 · ASVS V13.3.1 · BSI CON.10Erklärung
code.secret.webhook_urlWarnungWebhook-Adresse öffentlich
Slack-, Discord-, Teams- oder Zapier-Webhook im Quelltext oder in den JavaScript-Dateien. Jeder kann darüber Nachrichten in Ihre Kanäle schicken, auch gefälschte Anweisungen.
CWE-798 · CWE-540 · OWASP A07:2025 · ASVS V13.3.1 · BSI CON.10Erklärung
code.llm.browser_directWarnungKI-Aufruf direkt aus dem Browser
Die App spricht OpenAI oder Anthropic ohne eigenen Server an. Der Schlüssel liegt dafür im Browser und lässt sich auslesen.
CWE-798 · CWE-602 · OWASP A07:2025 · ASVS V13.3.1, V8.3.1 · BSI CON.10Erklärung
code.env.public_secret_nameWarnungGeheime Variable im öffentlichen Code
VITE_-, NEXT_PUBLIC_- oder REACT_APP_-Variable mit SECRET, PRIVATE oder PASSWORD im Namen. Ihr Wert landet in jedem Browser.
CWE-540 · OWASP A01:2025 · ASVS V13.3.1 · BSI CON.10Erklärung
code.secret.openaiWarnungOpenAI-Schlüssel öffentlich
API-Schlüssel für OpenAI im Quelltext oder in den JavaScript-Dateien. Jeder kann damit auf Ihre Rechnung Anfragen stellen.
CWE-798 · CWE-540 · OWASP A07:2025 · ASVS V13.3.1 · BSI CON.10Erklärung
code.secret.anthropicWarnungAnthropic-Schlüssel öffentlich
API-Schlüssel für Claude im Quelltext oder in den JavaScript-Dateien. Jeder kann damit auf Ihre Rechnung Anfragen stellen.
CWE-798 · CWE-540 · OWASP A07:2025 · ASVS V13.3.1 · BSI CON.10Erklärung
code.secret.stripeWarnungGeheimer Stripe-Schlüssel öffentlich
sk_live- oder rk_live-Schlüssel im Quelltext oder in den JavaScript-Dateien. Je nach Rechten lassen sich damit Zahlungen erstatten und Kundendaten abrufen.
CWE-798 · CWE-540 · OWASP A07:2025 · ASVS V13.3.1 · BSI CON.10Erklärung
code.secret.awsWarnungAWS-Zugangsschlüssel öffentlich
AKIA- oder ASIA-Schlüssel im Quelltext oder in den JavaScript-Dateien. Je nach Rechten erreicht man damit Speicher, Server und Rechnung Ihres AWS-Kontos.
CWE-798 · CWE-540 · OWASP A07:2025 · ASVS V13.3.1 · BSI CON.10Erklärung
code.secret.githubWarnungGitHub-Token öffentlich
Zugangstoken für GitHub im Quelltext oder in den JavaScript-Dateien. Je nach Rechten lässt sich damit Ihr Quellcode lesen oder ändern.
CWE-798 · CWE-540 · OWASP A07:2025 · ASVS V13.3.1 · BSI CON.10Erklärung
code.secret.slackWarnungSlack-Token öffentlich
Slack-Token im Quelltext oder in den JavaScript-Dateien. Je nach Rechten lassen sich damit Nachrichten lesen oder senden.
CWE-798 · CWE-540 · OWASP A07:2025 · ASVS V13.3.1 · BSI CON.10Erklärung
code.secret.sendgridWarnungSendGrid-Schlüssel öffentlich
Schlüssel für den Mailversand im Quelltext oder in den JavaScript-Dateien. Jeder kann damit Mails über Ihr Konto verschicken.
CWE-798 · CWE-540 · OWASP A07:2025 · ASVS V13.3.1 · BSI CON.10Erklärung
code.secret.mail_apiWarnungSchlüssel für den Mailversand öffentlich
Schlüssel für Resend, Brevo oder Mailchimp im Quelltext oder in den JavaScript-Dateien. Jeder kann damit Mails über Ihr Konto verschicken, etwa Phishing mit Ihrer Absenderadresse, oder Ihre Kontaktlisten abrufen.
CWE-798 · CWE-540 · OWASP A07:2025 · ASVS V13.3.1 · BSI CON.10Erklärung
code.secret.service_tokenWarnungZugangstoken für einen Online-Dienst öffentlich
Token mit eindeutigem Präfix oder unter eindeutigem Namen, etwa für das Supabase-Konto, Shopify-Admin, Google OAuth, Notion, Airtable, Telegram, GitLab, npm, Webhook-Signaturen (whsec_) und über 100 weitere Dienste aus dem Regelwerk von gitleaks, darunter Atlassian, Cloudflare, Datadog, Doppler, Heroku, Mailgun, Pulumi und Square. Je nach Dienst lassen sich damit Daten lesen, ändern oder Aktionen in Ihrem Namen auslösen.
CWE-798 · CWE-540 · OWASP A07:2025 · ASVS V13.3.1 · BSI CON.10Erklärung
code.secret.twilioWarnungTwilio-Schlüssel öffentlich
Schlüssel für SMS und Telefonie im Quelltext oder in den JavaScript-Dateien. Jeder kann damit auf Ihre Kosten SMS senden.
CWE-798 · CWE-540 · OWASP A07:2025 · ASVS V13.3.1 · BSI CON.10Erklärung
code.secret.database_urlWarnungDatenbank-Zugang mit Passwort öffentlich
Verbindungsadresse mit Benutzer und Passwort im Quelltext oder in den JavaScript-Dateien. Wer sie hat, kann sich direkt an der Datenbank anmelden.
CWE-798 · CWE-540 · OWASP A07:2025 · ASVS V13.3.1 · BSI CON.10Erklärung
code.secret.private_keyWarnungPrivater Schlüssel öffentlich
Privater Schlüssel (PEM) im Quelltext oder in den JavaScript-Dateien. Wer ihn hat, kann sich als Ihr Dienst ausgeben.
CWE-798 · CWE-540 · OWASP A07:2025 · ASVS V13.3.1 · BSI CON.10Erklärung
code.supabase.rls_checkHinweisDatenbank direkt aus dem Browser erreichbar
Supabase mit öffentlichem Schlüssel (anon oder sb_publishable). Geschützt sind die Daten nur mit Zugriffsregeln (RLS) auf jeder Tabelle. Ob sie aktiv sind, sehen wir von außen nicht.
CWE-862 · OWASP A01:2025 · ASVS V8.3.1, V8.2.2 · BSI CON.10, APP.3.1Erklärung
code.firebase.rules_checkHinweisFirebase direkt aus dem Browser erreichbar
Die Firebase-Konfiguration steht im Quelltext. Das ist so vorgesehen, geschützt sind die Daten aber nur durch Security Rules in Firestore, Realtime Database und Storage. Ob sie greifen, sehen wir von außen nicht.
CWE-862 · OWASP A01:2025 · ASVS V8.3.1, V8.2.2 · BSI CON.10, APP.3.1Erklärung
code.sourcemap_bundleHinweisQuellcode-Karten in den JavaScript-Dateien
Öffentlich abrufbare .map-Dateien, über die sich der Original-Quellcode samt Kommentaren wiederherstellen lässt. Wir melden sie nur, wenn die Datei wirklich ausgeliefert wird.
CWE-540 · OWASP A01:2025 · ASVS V13.4.7 · BSI CON.10Erklärung
code.public_keyHinweisGoogle-Schlüssel im Quelltext
Im HTML oder in den JavaScript-Dateien, oft gewollt, etwa für Maps. Firebase-Konfigurationen melden wir gesondert. Ohne Beschränkung auf Ihre Domain kann ihn jeder auf Ihre Kosten nutzen.
OWASP A02:2025 · BSI CON.10Erklärung
code.mixed_contentWarnungUnverschlüsselte Teile auf einer HTTPS-Seite
Bilder, Skripte oder Stylesheets werden über http geladen. Im selben Netz lassen sie sich austauschen.
CWE-319 · OWASP A04:2025 · ASVS V12.2.1 · BSI APP.3.1Erklärung
code.debug_outputWarnungFehlermeldung sichtbar
Text, der wie eine technische Fehlermeldung aussieht, etwa ein Stack Trace oder eine PHP-Warnung. Er verrät oft Pfade und Versionen.
CWE-209 · OWASP A10:2025 · ASVS V16.5.1, V13.4.2 · BSI APP.3.1Erklärung
code.sri.missingHinweisFremde Skripte ohne Fingerabdruck (SRI)
Skripte mit fester Version (etwa von einem CDN) ohne das Attribut integrity. Wird der Server manipuliert, läuft der veränderte Code mit. Dienste, deren Skript sich laufend ändert, zählen nicht, dort geht SRI nicht.
CWE-353 · CWE-829 · OWASP A08:2025 · ASVS V3.6.1 · BSI APP.3.1Erklärung
code.sourcemapHinweisQuellcode möglicherweise lesbar (Source Map)
Das HTML verweist auf eine .map-Datei.
CWE-540 · OWASP A01:2025 · ASVS V13.4.7 · BSI CON.10Erklärung
code.sensitive_pathsHinweisVerweise auf heikle Dateien
Pfade wie .env, .git oder Sicherungsdateien stehen im HTML. Wir rufen sie nicht ab.
CWE-538 · OWASP A01:2025 · ASVS V13.4.1, V13.4.7 · BSI APP.3.2Erklärung

Datenschutz (DSGVO)

Typische Datenschutz-Fehler, die sich von außen belegen lassen und in Deutschland oft abgemahnt werden: Google Fonts von Google-Servern, Tracking vor der Einwilligung, eingebettete Inhalte und fehlende Pflichtlinks. Keine Rechtsberatung. Befunde stehen in findings.privacy.

IDStufeWas geprüft wirdStandardsHilfe
privacy.google_fontsWarnungGoogle Fonts von Google-Servern
Schriften von fonts.googleapis.com oder fonts.gstatic.com, gefunden im HTML, in den Stylesheets oder in den JavaScript-Dateien. Bei deutschsprachigen Seiten eine Warnung, sonst und wenn die Adresse nur im JavaScript steht ein Hinweis.
CWE-359 · BSI CON.2 · Art. 6 Abs. 1 DSGVOErklärung
privacy.tracking_cookiesWarnungTracking-Cookies vor der Einwilligung
Der Server setzt schon in der ersten Antwort Cookies zum Messen oder für Werbung, etwa _ga, _fbp oder _gcl_au.
CWE-359 · BSI CON.2 · § 25 TDDDG · Art. 6 Abs. 1 DSGVOErklärung
privacy.third_party_embedsHinweisEingebettete Inhalte ohne Einwilligung
YouTube, Google Maps oder Vimeo stehen direkt als iframe in der Seite und laden beim Aufruf.
CWE-359 · BSI CON.2 · § 25 TDDDG · Art. 6 Abs. 1 DSGVOErklärung

Cookies

Ob die Cookies Ihrer Seite vor Mitlesen und fremden Skripten geschützt sind. Befunde stehen in findings.cookies.

IDStufeWas geprüft wirdStandardsHilfe
cookie.secure.missingHinweisCookie ohne Secure
Ein Cookie, dessen Name nach Sitzung oder Anmeldung aussieht, darf auch unverschlüsselt mitgeschickt werden.
CWE-614 · OWASP A02:2025 · ASVS V3.3.1 · BSI APP.3.1Erklärung
cookie.httponly.missingHinweisCookie ohne HttpOnly
Ein Cookie, dessen Name nach Sitzung oder Anmeldung aussieht, ist für Skripte lesbar. Fremder Code könnte damit das Konto übernehmen.
CWE-1004 · OWASP A02:2025 · ASVS V3.3.4 · BSI APP.3.1Erklärung

Zuordnung zu Standards

Jede Prüfung ist anerkannten Standards zugeordnet. So lässt sich ein Befund in Audits, für NIS2 oder gegenüber Prüfern einordnen. Die Zuordnung steht in der Tabelle oben, im PDF-Bericht bei jedem Befund und in der API im Feld standards. Sie ist unsere Einordnung und keine Zertifizierung.

  • CWE (MITRE): die Art der Schwachstelle. Wir nutzen nur Kennungen, die MITRE für die Zuordnung freigibt. Gibt es keine passende, bleibt das Feld leer.
  • OWASP Top 10:2025: die Kategorie ergibt sich aus der offiziellen CWE-Liste je Kategorie. Nur bei Prüfungen ohne CWE ordnen wir selbst ein, dann fast immer A02 (Fehlkonfiguration).
  • OWASP ASVS 5.0.0: die Anforderung, die der Befund verletzt, etwa V3.4.1 für HSTS.
  • BSI IT-Grundschutz (Kompendium Edition 2023): der Baustein, etwa APP.3.1 Webanwendungen und Webservices, dazu die Technischen Richtlinien TR-03116-4 (TLS) und TR-03108 (E-Mail-Transport).
  • Recht: beim Datenschutz die Vorschrift, etwa § 25 TDDDG oder Art. 13 DSGVO. Keine Rechtsberatung.

Wir verweisen nur auf Kennungen und schreiben die Texte selbst. OWASP veröffentlicht ASVS und Top 10 unter CC BY-SA 4.0, CWE stammt von MITRE.

Was wir nie tun

Der Check bleibt an der Oberfläche. Er lädt die Seite und die JavaScript-Dateien, die sie selbst einbindet, nur von derselben Domain. Diese Dinge macht er nie, egal wie die Anfrage lautet.

  • Versteckte Pfade ausprobieren oder Dateien wie .env abrufen
  • Dateien laden, die Ihre Seite nicht selbst einbindet oder abruft (außer der öffentlichen Datei /.well-known/security.txt), oder Skripte von fremden Domains lesen
  • Offene Ports suchen (Port-Scan)
  • Formulare absenden oder Angriffs-Code schicken
  • Uns anmelden oder gefundene Schlüssel benutzen
  • Vollständige Werte gefundener Schlüssel anzeigen oder speichern
  • Interne oder private Adressen prüfen

Mehr dazu im Hilfe-Artikel Was wir nicht prüfen.

Ist Ihre App
wasserdicht?

Hullwise findet die Lecks, bevor es andere tun: offene Schlüssel, Datenbank-Zugänge und veraltete Software. Zu jedem Befund gibt es eine Anleitung zur Behebung.

https://

Klicken Sie auf einen Befund, um ihn als behoben zu markieren.

Preise ansehenSo läuft ein Scan ab

Ship fast. Stay hullwise.