Beta
Vibecode-CheckerBYB Labs × WBS.LEGAL
Nachprüfbar

Was wir prüfen: jede Regel, vollständig

Diese Liste ist keine Werbeauswahl, sondern wird aus derselben Datei erzeugt, die auch die Auswertung benutzt (196 Regeln, davon 149 angewendet, dazu 3 stillgelegte). Kommt eine Regel dazu, steht sie hier; wird eine stillgelegt, steht das dabei.

Fassung 2026.10.1 · Kurzhash b2633a60 · gültig ab 2026-08-01. Dieselbe Angabe steht unter jedem Bericht. Zwei Berichte sind nur dann vergleichbar, wenn diese Zeile in beiden gleich ist.

Was diese Liste nicht ist

Sie ist keine Zusicherung von Vollständigkeit: Was hier nicht steht, prüfen wir nicht, und im Bericht steht eine Regel ohne passenden Fakt als „Hinweis“ statt stillschweigend als „erfüllt“. Was wir an deinem Projekt nicht sehen konnten, steht dort unter „Hinweise“, jeder mit dem Grund, aus dem er offen ist.

Technik

Technik · 77 Regeln

Gemessen am Projektarchiv und an der laufenden Seite. Diese Regeln entscheiden über Zugriff auf Daten, über Schlüssel, die nicht öffentlich sein dürfen, und über Abhängigkeiten.

  • RW-CO-005mittel

    Auf der ersten Bannerebene wurde kein Ablehnen-Element erkannt

    Technische Beobachtung: anonyme Startseite · Der Befund gilt nur für den beobachteten Zustand der anonymen Startseite. Er ist keine rechtliche Bewertung des Banners und keine Aussage über die gesamte Barrierefreiheit oder geschützte Bereiche.

    Was dann zu tun ist: Prüfe die erste sichtbare Bannerebene manuell, insbesondere Tastaturbedienung und alternative Beschriftungen.

    Braucht den Fakt F-consent-ablehnen-erste-ebene · mindestens Konfidenz „wahrscheinlich“ · 2 Kalibrierfälle

  • RW-CO-006mittel

    Im Banner wurden vorausgewählte Optionen beobachtet

    Technische Beobachtung: anonyme Startseite · Der Befund gilt nur für den beobachteten Zustand der anonymen Startseite. Er ist keine rechtliche Bewertung des Banners und keine Aussage über die gesamte Barrierefreiheit oder geschützte Bereiche.

    Was dann zu tun ist: Prüfe, welche Zwecke vorausgewählt sind und ob eine aktive Entscheidung vor nicht notwendigen Zugriffen verlangt wird.

    Braucht den Fakt F-consent-vorauswahl · mindestens Konfidenz „sicher“ · 2 Kalibrierfälle

  • RW-CO-007mittel

    Nach Ablehnen wurden weiterhin Messhosts kontaktiert

    Technische Beobachtung: anonyme Startseite · Der Befund gilt nur für den beobachteten Zustand der anonymen Startseite. Er ist keine rechtliche Bewertung des Banners und keine Aussage über die gesamte Barrierefreiheit oder geschützte Bereiche.

    Was dann zu tun ist: Prüfe die konkreten Anfragen und ihren Zweck. Ein Hostkontakt allein beweist weder nicht notwendiges Tracking noch eine wirksame Einwilligung.

    Braucht den Fakt F-consent-nach-ablehnen · mindestens Konfidenz „sicher“ · 2 Kalibrierfälle

  • RW-BF-002mittel

    Automatischer Zugänglichkeitstest zeigt Auffälligkeiten

    Technische Beobachtung: geprüfte Seiten · Axe-, Struktur-, Fokus- und Reflow-Beobachtungen gelten für den gemessenen Umfang; die manuelle Prüfung bleibt offen. Heuristiken zu Tastaturbedienung und Zielgrößen beweisen keinen gesicherten WCAG-Verstoß. Aus fehlenden Treffern folgt keine vollständige Barrierefreiheit.

    Was dann zu tun ist: Prüfe die gemeldeten Elemente und behebe bestätigte Probleme. Ergänze manuelle Tastatur- und Screenreaderprüfungen.

    Braucht den Fakt F-a11y-axe-treffer · mindestens Konfidenz „sicher“ · 2 Kalibrierfälle

  • RW-DB-002Blocker

    Deine Zugriffsregel gibt eine Tabelle mit Personendaten für alle frei

    Art. 32 DSGVO · Das ist in der Regel ein Verstoß gegen Art. 32 DSGVO; die Einordnung prüft die Kanzlei. Wird der Zugriff tatsächlich genutzt, kann eine Meldepflicht nach Art. 33 DSGVO binnen 72 Stunden entstehen.

    Was dann zu tun ist: Row Level Security ist eingeschaltet, wirkt aber nicht: Die Regel für diese Tabelle lautet „erlaube allen“. Jeder mit dem öffentlichen Schlüssel liest alle Zeilen, samt E-Mail und Adresse.

    Braucht die Fakten F-59, F-57 · mindestens Konfidenz „sicher“ · 3 Kalibrierfälle

  • RW-DB-003Blocker

    Jeder darf in deine Datenbank schreiben

    Art. 32 DSGVO · Das ist in der Regel ein Verstoß gegen Art. 32 DSGVO; die Einordnung prüft die Kanzlei. Wer unter diese Regel fällt, kann bestehende Datensätze ändern oder löschen, auch fremde. Bei `to anon`, `to public` oder ohne `TO` braucht es dafür nicht einmal eine Anmeldung.

    Was dann zu tun ist: Eine Änderungs- oder Löschregel mit `using (true)` oder `with check (true)` erlaubt jeden Vorgang auf jeder Zeile. Binde sie an den angemeldeten Nutzer. Reine Einfügeregeln stehen unter RW-DB-011, Regeln für `service_role` sind kein Befund.

    Braucht die Fakten F-60, F-58u · mindestens Konfidenz „sicher“ · 3 Kalibrierfälle

  • RW-DB-011mittel

    In eine deiner Tabellen darf jeder neue Zeilen schreiben

    Art. 32 DSGVO · Eine Einfügeregel mit `with check (true)` oder einer Bedingung, die nicht an den angemeldeten Nutzer bindet (etwa nur eine Längengrenze), lässt jeden neuen Datensatz zu, bei `to anon`, `to public` oder ohne `TO` auch ohne Anmeldung: beliebig viele Zeilen, auch im Namen anderer Nutzer. Bestehende Zeilen ändern oder löschen kann darüber niemand.

    Was dann zu tun ist: Prüfe, ob wirklich jeder schreiben soll. Wenn ja, begrenze Feldlängen per check-Constraint und setze einen Spamschutz davor (Captcha oder Ratenbegrenzung über eine Serverfunktion). Wenn nein, binde die Regel an den angemeldeten Nutzer.

    Braucht die Fakten F-60i, F-58u · mindestens Konfidenz „sicher“ · 3 Kalibrierfälle

  • RW-DB-005mittel

    Row Level Security ist an, aber es gibt keine Regel

    Art. 32 DSGVO · Kein Datenabfluss. Die Anwendung bekommt aber leere Ergebnisse und wirkt kaputt.

    Was dann zu tun ist: Prüfe die für direkte Nutzerzugriffe vorgesehenen Tabellen und richte ausschließlich die benötigten Berechtigungen ein. Backend-Tabellen können absichtlich gesperrt bleiben.

    Braucht die Fakten F-58, F-61 · mindestens Konfidenz „sicher“ · 3 Kalibrierfälle

  • RW-ST-001hoch

    Dein Dateispeicher ist öffentlich

    Art. 32 DSGVO · Hochgeladene Dateien sind ohne Anmeldung abrufbar, sobald jemand die Adresse kennt oder rät.

    Was dann zu tun ist: Schütze die privaten Speicherbereiche mit einer Berechtigungsprüfung. Absichtlich öffentliche Dateien dürfen getrennt öffentlich bleiben.

    Braucht den Fakt F-speicher-privat-offen · mindestens Konfidenz „sicher“ · 3 Kalibrierfälle

  • RW-SEC-001Blocker

    Deine .env mit echten Zugangsdaten liegt im Archiv

    Art. 32 DSGVO · Wer das Archiv bekommt, bekommt die Zugangsdaten. Sie gelten weiter, bis sie gewechselt werden.

    Was dann zu tun ist: Wechsle jeden Schlüssel beim Anbieter und lege die Werte nur noch in den Umgebungsvariablen des Hosters ab.

    Braucht den Fakt F-67 · mindestens Konfidenz „sicher“ · 2 Kalibrierfälle

  • RW-SEC-002hoch

    Deine .env ist nicht von der Versionierung ausgenommen

    Art. 32 DSGVO · Beim nächsten Hochladen landen die Zugangsdaten dauerhaft in der Versionsgeschichte, auch wenn du sie später löschst.

    Was dann zu tun ist: Eine Zeile in `.gitignore`: `.env*`. Danach die bereits versionierten Werte wechseln.

    Braucht die Fakten F-68, F-67 · mindestens Konfidenz „sicher“ · 3 Kalibrierfälle

  • RW-SEC-010Hinweis

    Deine .env mit öffentlichen Werten ist nicht von der Versionierung ausgenommen

    Art. 32 DSGVO · Heute stehen darin nur Werte, die jeder Besucher ohnehin sieht. Ein Schlüssel, der später dazukommt, landet ohne Warnung in der Versionsgeschichte.

    Was dann zu tun ist: Nimm `.env*` in die `.gitignore` auf, bevor ein geheimer Wert in die Datei kommt.

    Braucht die Fakten F-68, F-67, F-67o · mindestens Konfidenz „sicher“ · 3 Kalibrierfälle

  • RW-SEC-003Blocker

    Ein Schlüssel mit vollem Datenbankzugriff liegt im Archiv

    Art. 32 DSGVO · Der `service_role`-Schlüssel umgeht jede Zugriffsregel. Wer ihn hat, liest und schreibt alles.

    Was dann zu tun ist: Wechsle den Schlüssel im Anbieterkonto und lege ihn nur noch serverseitig ab, nie in einer Datei, die ausgeliefert wird.

    Braucht den Fakt F-65 · mindestens Konfidenz „sicher“ · 2 Kalibrierfälle

  • RW-SEC-004Blocker

    Ein Geheimnis steht unter einem öffentlichen Präfix

    Art. 32 DSGVO · Alles mit `VITE_`, `NEXT_PUBLIC_`, `EXPO_PUBLIC_` oder `REACT_APP_` landet im ausgelieferten Bundle. Jeder Besucher kann es lesen.

    Was dann zu tun ist: Benenne die Variable ohne öffentliches Präfix um und rufe den Dienst über eine Serverroute auf.

    Braucht den Fakt F-69 · mindestens Konfidenz „wahrscheinlich“ · 2 Kalibrierfälle

  • RW-SEC-011Hinweis

    Unter einem öffentlichen Präfix steht eine Variable, die wir nicht einordnen können

    Art. 32 DSGVO · Der Wert landet im ausgelieferten Bundle. Ist er ein Schlüssel, kann ihn jeder Besucher lesen; ist er ein Titel oder Schalter, ist nichts zu tun.

    Was dann zu tun ist: Prüfe, ob der Wert geheim ist. Wenn ja: ohne öffentliches Präfix umbenennen und den Dienst über eine Serverroute aufrufen.

    Braucht den Fakt F-69h · mindestens Konfidenz „sicher“ · 2 Kalibrierfälle

  • RW-SEC-012Blocker

    Ein Anbieterschlüssel steht in Code, der im Browser landet

    Art. 32 DSGVO · Jeder Besucher liest den Schlüssel im ausgelieferten Code und nutzt den Dienst auf deine Kosten oder mit deinen Rechten, bis der Schlüssel gewechselt ist.

    Was dann zu tun ist: Wechsle den Schlüssel beim Anbieter und rufe den Dienst nur noch über eine Serverroute auf, die den Schlüssel aus den Umgebungsvariablen des Hosters liest.

    Braucht den Fakt F-65c · mindestens Konfidenz „sicher“ · 2 Kalibrierfälle

  • RW-SEC-013hoch

    Ein Anbieterschlüssel steht fest im Quelltext

    Art. 32 DSGVO · Wer den Quelltext bekommt, bekommt den Schlüssel. Er gilt weiter, bis er beim Anbieter gewechselt wird.

    Was dann zu tun ist: Wechsle den Schlüssel beim Anbieter und lies ihn nur noch aus den Umgebungsvariablen des Hosters.

    Braucht den Fakt F-65q · mindestens Konfidenz „sicher“ · 2 Kalibrierfälle

  • RW-SEC-016Hinweis

    Ein Google-Browserschlüssel steht im Code: Sind seine Beschränkungen gesetzt?

    Art. 32 DSGVO · Der Schlüssel steht in jeder ausgelieferten Seite, das ist bei Firebase und Google Maps so vorgesehen. Ohne API- und Referrer-Beschränkung kann ihn aber jeder für andere Google-Dienste auf deine Rechnung verwenden. Der Schutz der Daten hängt bei Firebase an den Sicherheitsregeln, nicht am Schlüssel.

    Was dann zu tun ist: Beschränke den Schlüssel in der Google Cloud Console auf die benötigten APIs und auf deine Domains (HTTP-Referrer) und setze ein Budgetlimit. Ein Gemini-Schlüssel gehört nie in den Browser.

    Braucht den Fakt F-65g · mindestens Konfidenz „sicher“ · 2 Kalibrierfälle

  • RW-SEC-017hoch

    Ein KI-Dienst wird direkt aus dem Browser aufgerufen

    Art. 32 DSGVO · Ein KI-SDK mit `dangerouslyAllowBrowser: true`, `@google/genai` im Clientcode oder ein Aufruf an einen KI-Endpunkt aus dem Browser braucht den Schlüssel im ausgelieferten Code. Jeder Besucher kann ihn dort lesen und das Modell auf deine Kosten nutzen. Tragen die Nutzer ihren eigenen Schlüssel ein, ist das kein Befund.

    Was dann zu tun ist: Verlege den Modellaufruf in eine Serverfunktion oder Edge Function, die den Schlüssel aus den Umgebungsvariablen liest, den Nutzer prüft und die Nutzung begrenzt. Wechsle einen bereits ausgelieferten Schlüssel beim Anbieter.

    Braucht den Fakt F-65k · mindestens Konfidenz „sicher“ · 2 Kalibrierfälle

  • RW-SEC-005hoch

    Eine Schlüsseldatei ist mit ausgeliefert

    Art. 32 DSGVO · Private Schlüssel und Dienstkonten geben dauerhaften Zugriff, oft ohne Ablauf.

    Was dann zu tun ist: Entferne die Datei, wechsle den Schlüssel und lege ihn in die Geheimnisverwaltung des Hosters.

    Braucht den Fakt F-64 · mindestens Konfidenz „sicher“ · 2 Kalibrierfälle

  • RW-API-001hoch

    Eine Serverfunktion schreibt, ohne den Aufrufer zu prüfen, und nimmt Anfragen von jeder Herkunft an

    Art. 32 DSGVO · Die Funktion schreibt in die Datenbank, ohne zu prüfen, wer fragt, und erlaubt mit `Access-Control-Allow-Origin: *` Aufrufe aus jeder fremden Seite. Jeder kann sie auslösen, direkt oder über den Browser deiner Besucher. `*` an einer Funktion, die den Nutzer über das Bearer-Token prüft und keine Cookies nutzt, ist dagegen die dokumentierte Supabase-Einstellung und kein Befund.

    Was dann zu tun ist: Prüfe in der Funktion zuerst den angemeldeten Nutzer (`supabase.auth.getUser()` mit dem Authorization-Header) und brich ohne gültigen Nutzer ab. Ist die Funktion bewusst öffentlich, etwa ein Formular, begrenze sie mit Ratenbegrenzung oder Captcha und erlaube nur die eigene Domain.

    Braucht den Fakt F-63 · mindestens Konfidenz „sicher“ · 2 Kalibrierfälle

  • RW-HD-001gering

    Deine Seite erzwingt keine verschlüsselte Verbindung

    Art. 32 DSGVO · Der erste Aufruf kann unverschlüsselt laufen und mitgelesen werden.

    Was dann zu tun ist: Setze `Strict-Transport-Security: max-age=63072000; includeSubDomains`.

    Braucht den Fakt F-17a · mindestens Konfidenz „sicher“ · 2 Kalibrierfälle

  • RW-HD-002mittel

    Deine Seite hat keine Inhaltsrichtlinie

    Art. 32 DSGVO · Ohne Content-Security-Policy kann eingeschleuster Fremdcode ungehindert laufen und Eingaben abgreifen.

    Was dann zu tun ist: Setze eine CSP mit `default-src 'self'`, `object-src 'none'` und `base-uri 'none'`.

    Braucht den Fakt F-17b · mindestens Konfidenz „sicher“ · 2 Kalibrierfälle

  • RW-HD-003mittel

    Deine Seite lässt sich in fremde Seiten einbetten

    Art. 32 DSGVO · Eine fremde Seite kann deine Oberfläche überlagern und Klicks abfangen (Clickjacking).

    Was dann zu tun ist: Setze `X-Frame-Options: DENY` oder `frame-ancestors 'none'` in der CSP.

    Braucht den Fakt F-17c · mindestens Konfidenz „sicher“ · 2 Kalibrierfälle

  • RW-HD-004gering

    Dein Server lässt den Browser Dateitypen raten

    Art. 32 DSGVO · Eine hochgeladene Datei kann im Browser als Skript ausgeführt werden.

    Was dann zu tun ist: Setze `X-Content-Type-Options: nosniff`.

    Braucht den Fakt F-17d · mindestens Konfidenz „sicher“ · 2 Kalibrierfälle

  • RW-SI-002Blocker

    Private Personendaten sind ohne Berechtigung abrufbar

    Art. 5 Abs. 1 lit. f, Art. 32 DSGVO · Unberechtigte können vertrauliche Personendaten lesen. Suchmaschinenindexierung ist keine Voraussetzung für dieses Zugriffsproblem.

    Was dann zu tun ist: Prüfe auf dem Server bei jedem Datenabruf die Berechtigung für den angefragten Datensatz. Eine öffentliche Startseite darf bleiben; noindex ersetzt keine Zugriffskontrolle.

    Braucht den Fakt F-daten-offen · mindestens Konfidenz „wahrscheinlich“ · 3 Kalibrierfälle

  • RW-TR-001mittel

    Deine Seite ist auch ohne Verschlüsselung erreichbar

    Art. 32 Abs. 1 lit. a DSGVO · Wer die Adresse ohne „https“ eintippt, überträgt den ersten Aufruf im Klartext, samt Anmeldedaten, wenn die Anmeldemaske dabei geladen wird. In einem fremden WLAN liest das jeder mit.

    Was dann zu tun ist: Richte eine dauerhafte Weiterleitung (301) von `http://` auf `https://` derselben Adresse ein. Bei Vercel, Netlify und Cloudflare ist das ein Schalter, kein Code.

    Braucht den Fakt F-16a · mindestens Konfidenz „sicher“ · 2 Kalibrierfälle

  • RW-TR-002hoch

    Dein Sicherheitszertifikat passt nicht zu deiner Adresse oder läuft ab

    Art. 32 Abs. 1 lit. b DSGVO · Der Browser zeigt statt der Seite eine Warnung. Wer sie wegklickt, lernt, Warnungen wegzuklicken, und genau darauf baut die nächste gefälschte Seite.

    Was dann zu tun ist: Zertifikat erneuern und alle benutzten Namen aufnehmen, mit und ohne `www.`. Let's Encrypt erneuert von selbst, sobald es einmal eingerichtet ist.

    Braucht den Fakt F-16b · mindestens Konfidenz „sicher“ · 2 Kalibrierfälle

  • RW-TR-003mittel

    Deine Seite spricht noch ein veraltetes Verschlüsselungsverfahren

    Art. 32 Abs. 1 DSGVO (Stand der Technik) · TLS 1.0 und 1.1 gelten seit 2021 als überholt. Der Maßstab des Gesetzes ist der Stand der Technik, und den erfüllen sie nicht mehr.

    Was dann zu tun ist: Beim Hoster mindestens TLS 1.2 erzwingen, besser 1.3. Die Einzelheiten der Verschlüsselungsverfahren lassen wir bewusst weg: Sie ändern an der Maßnahme nichts.

    Braucht den Fakt F-16c · mindestens Konfidenz „sicher“ · 2 Kalibrierfälle

  • RW-TR-004hoch

    Auf deiner verschlüsselten Seite werden Teile unverschlüsselt nachgeladen

    Art. 32 Abs. 1 lit. a DSGVO · Ein über `http://` geladenes Skript kann die ganze Seite übernehmen, auch die Eingabefelder. Das Schloss in der Adresszeile sagt darüber nichts.

    Was dann zu tun ist: Alle Adressen von Skripten, Stilen, iframes und Datenabrufen auf `https://` umstellen. Was es nur unverschlüsselt gibt, gehört selbst ausgeliefert oder ersetzt.

    Braucht den Fakt F-16d · mindestens Konfidenz „sicher“ · 2 Kalibrierfälle

  • RW-TR-005mittelEntwurf: wird noch nicht angewendet

    Dein Sicherheitszertifikat läuft in weniger als 14 Tagen ab

    Art. 32 Abs. 1 lit. b DSGVO ‹K› · Läuft das Zertifikat ab, zeigt der Browser statt der Seite eine Warnung. Übrig ist weniger als ein Drittel seiner Gesamtlaufzeit; eine automatische Erneuerung greift üblicherweise früher. Das deutet darauf hin, dass sie nicht greift.

    Was dann zu tun ist: Erneuere das Zertifikat jetzt und prüfe, warum die automatische Erneuerung nicht gegriffen hat (Zugang des Hosters, DNS-Eintrag, abgelaufene Zugangsdaten).

    Braucht den Fakt F-16f · mindestens Konfidenz „sicher“ · 2 Kalibrierfälle

  • RW-HD-005mittel

    Deine Inhaltsrichtlinie erlaubt genau das, wogegen sie schützen soll

    Art. 32 Abs. 1 lit. b DSGVO · Mit `unsafe-inline` oder `unsafe-eval` darf eingeschleuster Code weiterhin laufen; `*` oder `https:` in `default-src` oder `script-src` erlaubt jede Herkunft. Die Richtlinie steht dann da, ohne etwas zu verhindern.

    Was dann zu tun ist: `unsafe-inline` und `unsafe-eval` entfernen und stattdessen mit Nonces oder Hashes arbeiten; `default-src` auf `'self'` setzen und in `script-src` nur die Herkünfte nennen, aus denen wirklich Skripte kommen.

    Braucht die Fakten F-17b, F-17e · mindestens Konfidenz „sicher“ · 4 Kalibrierfälle

  • RW-HD-006geringEntwurf: wird noch nicht angewendet

    Deine Seite begrenzt nicht selbst, was fremde Server über die Herkunft deiner Besucher erfahren

    Art. 5 Abs. 1 lit. c DSGVO ‹K› · Ohne `Referrer-Policy` gilt der Standard des Browsers: Aktuelle Browser schicken fremden Servern dann nur die Domain der Vorseite, ältere auch die volle Adresse. Eine schwache Policy (`unsafe-url`, `no-referrer-when-downgrade`) hebt diesen Schutz auf, dann geht die volle Adresse der Vorseite mit, samt Suchbegriffen oder Kennungen darin. Fehlt die `Permissions-Policy`, sind Kamera, Mikrofon und Standort nicht vorsorglich abgeschaltet. ‹K› Ob daraus ein Verstoß gegen die Datenminimierung folgt, muss die Kanzlei entscheiden.

    Was dann zu tun ist: `Referrer-Policy: strict-origin-when-cross-origin` und eine `Permissions-Policy` setzen, die Kamera, Mikrofon und Standort abschaltet, solange sie nicht gebraucht werden.

    Braucht den Fakt F-17f · mindestens Konfidenz „sicher“ · 2 Kalibrierfälle

  • RW-HD-007HinweisEntwurf: wird noch nicht angewendet

    Dein Server sagt jedem, welche Software in welcher Version läuft

    Art. 32 Abs. 1 DSGVO ‹K› · Eine Versionsnummer im Header ist selbst keine Schwachstelle. Sie beantwortet aber die erste Frage jedes automatisierten Scans: Wonach lohnt es sich hier zu suchen? ‹K›

    Was dann zu tun ist: `X-Powered-By` und die Version im `Server`-Header abschalten. Bei Next.js genügt `poweredByHeader: false` in `next.config`.

    Braucht den Fakt F-17g · mindestens Konfidenz „sicher“ · 2 Kalibrierfälle

  • RW-CK-001mittel

    Deine Cookies werden auch über unverschlüsselte Verbindungen mitgeschickt

    Art. 32 Abs. 1 lit. a DSGVO · Ein Sitzungscookie ohne `Secure` geht bei jedem `http://`-Aufruf im Klartext mit. Wer es abfängt, ist angemeldet, ohne Passwort.

    Was dann zu tun ist: An jedes Cookie `Secure` setzen; bei `SameSite=None` ist es ohnehin zwingend. Sitzungscookies zusätzlich `HttpOnly`, damit kein Skript sie lesen kann.

    Braucht den Fakt F-16e · mindestens Konfidenz „sicher“ · 2 Kalibrierfälle

  • RW-CK-002HinweisEntwurf: wird noch nicht angewendet

    Dein Anmelde-Cookie ist für jedes Skript auf der Seite lesbar

    Art. 32 Abs. 1 DSGVO ‹K› · Ein Cookie, das nach Anmeldung oder Sitzung aussieht, trägt kein `HttpOnly`. Gelingt einem fremden Skript eine Einschleusung (XSS), liest es die Sitzung aus und nimmt sie mit. Ob das Cookie wirklich die Anmeldung trägt, schließen wir aus seinem Namen, nicht aus seinem Inhalt. `@supabase/ssr` legt `sb-…-auth-token` absichtlich lesbar ab, weil der Browser-Client es braucht; ohne `@supabase/ssr` liegt die Supabase-Sitzung standardmäßig im localStorage und ist dort genauso lesbar. Dass dieser Hinweis fehlt, heißt deshalb nicht, dass die Sitzung geschützt ist. ‹K›

    Was dann zu tun ist: Sitzungscookies serverseitig mit `HttpOnly`, `Secure` und `SameSite=Lax` setzen, am besten mit dem Präfix `__Host-` (dann nur mit `Secure`, `Path=/` und ohne `Domain`). Wo der Browser-Client die Sitzung lesen muss (Supabase), bleibt das Cookie lesbar: Dann zählt eine strenge Content-Security-Policy umso mehr.

    Braucht den Fakt F-16g · mindestens Konfidenz „wahrscheinlich“ · 2 Kalibrierfälle

  • RW-EX-001Blocker

    Deine Zugangsdaten sind direkt über das Netz abrufbar

    Art. 32 DSGVO, Art. 33 DSGVO · Eine abrufbare `/.env` oder `/.git/config` gibt Zugangsdaten heraus, ohne dass jemand einbrechen muss. Wird das genutzt, läuft die 72-Stunden-Frist des Art. 33 DSGVO.

    Was dann zu tun ist: Die Dateien aus dem ausgelieferten Verzeichnis nehmen und jeden darin enthaltenen Schlüssel wechseln. Eine Sperre in der Serverkonfiguration allein genügt nicht, solange die Werte gültig bleiben.

    Braucht den Fakt F-18 · mindestens Konfidenz „sicher“ · 2 Kalibrierfälle

  • RW-EX-002hoch

    Dein kompletter Quelltext liegt offen im Netz

    Art. 32 Abs. 1 lit. b DSGVO · Mit den Quelltextkarten liest jeder deinen ungebündelten Code, samt Kommentaren, internen Adressen und allem, was im Bündel sonst unleserlich wäre.

    Was dann zu tun ist: Quelltextkarten für den Produktionsbau abschalten: `build.sourcemap: false` bei Vite, `productionBrowserSourceMaps: false` bei Next, oder die `.map`-Dateien nicht mit ausliefern.

    Braucht den Fakt F-19 · mindestens Konfidenz „sicher“ · 2 Kalibrierfälle

  • RW-EX-003mittel

    Bei einem Fehler zeigt deine Seite ihre Innereien

    Art. 32 Abs. 1 lit. b DSGVO · Ein Stacktrace nennt Dateipfade, Bibliotheksversionen und oft den Datenbankfehler im Wortlaut. Das ist die Landkarte für den nächsten Versuch.

    Was dann zu tun ist: Eine eigene Fehlerseite anlegen (`app/error.tsx`, `app/not-found.tsx` oder eine ErrorBoundary) und Fehlerdetails nur ins Protokoll schreiben, nie in die Antwort.

    Braucht den Fakt F-20 · mindestens Konfidenz „sicher“ · 2 Kalibrierfälle

  • RW-EX-004hochEntwurf: wird noch nicht angewendet

    Verwaltungs- und Diagnoseseiten sind ohne Anmeldung erreichbar

    Art. 32 Abs. 1 lit. b DSGVO ‹K› · Ein offenes `/metrics` nennt Hostnamen, Pfade und Aufrufzahlen; eine offene `/api/docs` beschreibt jede Schnittstelle. Beides ist ohne Anmeldung nicht für die Öffentlichkeit gedacht. ‹K›

    Was dann zu tun ist: Die Endpunkte hinter eine Anmeldung stellen oder im Produktivbetrieb abschalten. `/health` darf offen bleiben, solange es nur „läuft“ antwortet.

    Braucht den Fakt F-18b · mindestens Konfidenz „wahrscheinlich“ · 2 Kalibrierfälle

  • RW-EX-005Hinweis

    Dein Produktionsbau erzeugt Quelltextkarten

    Art. 32 DSGVO · Mit `build.sourcemap` (Vite) oder `productionBrowserSourceMaps` (Next.js) entstehen `.map`-Dateien mit dem vollständigen, lesbaren Quelltext. Werden sie mit ausgeliefert, liest jeder Besucher deinen Code samt Kommentaren und internen Adressen. `hidden` lässt nur den Verweis weg, die Dateien bleiben im Ausgabeordner.

    Was dann zu tun ist: Schalte die Quelltextkarten für den Produktionsbau ab oder lade sie nur zu deinem Fehlerdienst hoch und lösche sie danach aus dem Ausgabeordner.

    Braucht den Fakt F-19z · mindestens Konfidenz „sicher“ · 2 Kalibrierfälle

  • RW-DB-001Blocker

    Für eine deiner Tabellen ist der Zugriffsschutz gar nicht eingeschaltet

    Art. 32 DSGVO · Ohne Row Level Security liest und schreibt jeder mit dem öffentlichen Schlüssel die vollständige Tabelle. Es braucht dafür kein Werkzeug, nur die Adresse.

    Was dann zu tun ist: `alter table public.<tabelle> enable row level security;` Und danach mindestens eine Regel anlegen, sonst ist die Tabelle auch für die eigene Anwendung dicht.

    Braucht die Fakten F-58b, F-58u · mindestens Konfidenz „sicher“ · 3 Kalibrierfälle

  • RW-DB-004Blocker

    Nicht angemeldete Besucher dürfen in deine Datenbank schreiben

    Art. 32 DSGVO · Die Rolle `anon` ist jeder Besucher. Eine Schreibfreigabe an sie heißt: Fremde legen Datensätze an, ändern und löschen sie, auch fremde.

    Was dann zu tun ist: Nimm `anon` und `public` aus der Regel heraus und binde sie an den angemeldeten Nutzer: `create policy … to authenticated using ((select auth.uid()) = user_id)`.

    Braucht die Fakten F-60b, F-58u · mindestens Konfidenz „sicher“ · 3 Kalibrierfälle

  • RW-DB-006Blocker

    Deine Zugriffsregel öffnet genau denen die Tür, die nicht angemeldet sind

    Art. 32 DSGVO · Genau dieser Fehler war CVE-2025-48757: 170 Anwendungen, über 18.000 Nutzer, 48 Tage offen. Angemeldete wurden blockiert, anonyme Besucher hatten vollen Zugriff.

    Was dann zu tun ist: `auth.uid() is null` in einer `using`-Klausel gewährt Zugriff, WEIL niemand angemeldet ist. Dreh die Bedingung um: `(select auth.uid()) = user_id`.

    Braucht die Fakten F-59b, F-58u · mindestens Konfidenz „sicher“ · 3 Kalibrierfälle

  • RW-DB-012hoch

    Nutzer können sich selbst Rechte oder Guthaben geben

    Art. 32 DSGVO · Eine Policy lässt Nutzer ihre eigene Zeile ändern, und darin steht eine Spalte wie `role`, `is_admin`, `credits` oder `plan`, die nichts schützt. Ein einziger Aufruf mit dem öffentlichen Schlüssel genügt, um sich selbst zum Admin zu machen oder Guthaben und Tarif zu setzen. Dasselbe gilt für Berechtigungen aus `user_metadata`: Diesen Teil des Kontos schreibt jeder Nutzer selbst.

    Was dann zu tun ist: Entziehe das allgemeine Änderungsrecht und erlaube nur die harmlosen Spalten (`revoke update on public.profiles from authenticated; grant update (full_name, avatar_url) on public.profiles to authenticated;`) oder verhindere Änderungen an Rollen- und Guthabenspalten mit einem BEFORE-UPDATE-Trigger. Rollen gehören in eine eigene Tabelle oder in `app_metadata`, nie in `user_metadata`.

    Braucht die Fakten F-59e, F-58u · mindestens Konfidenz „sicher“ · 4 Kalibrierfälle

  • RW-DB-013hoch

    Eine View liest an deinem Zugriffsschutz vorbei

    Art. 32 DSGVO · Eine View ohne `security_invoker = true` läuft mit den Rechten ihres Erstellers und wertet die Row Level Security der Tabellen darunter nicht aus. Über die API kann sie jeder mit dem öffentlichen Schlüssel abfragen und sieht alle Zeilen, auch fremde. Eine View auf `auth.users` legt zusätzlich E-Mail-Adressen offen.

    Was dann zu tun ist: Lege die View mit `with (security_invoker = true)` an oder setze es nachträglich (`alter view public.<view> set (security_invoker = true);`). Eine View auf `auth.users` gehört nicht ins Schema `public`.

    Braucht die Fakten F-59v, F-59u, F-58u · mindestens Konfidenz „sicher“ · 4 Kalibrierfälle

  • RW-DB-014mittel

    Eine Datenbankfunktion mit vollen Rechten ist für jeden Besucher aufrufbar

    Art. 32 DSGVO · Eine `security definer`-Funktion läuft mit den Rechten ihres Erstellers, an jeder Zugriffsregel vorbei. Postgres erlaubt das Ausführen standardmäßig PUBLIC, Supabase zusätzlich `anon`: Jeder Besucher kann sie über `/rest/v1/rpc/` aufrufen. Was sie tut, tut sie dann für jeden. Liefert sie nur Ja oder Nein (etwa `has_role`), kann sie nichts ändern, beantwortet aber jedem, welche Nutzerkennung welche Rolle hat.

    Was dann zu tun ist: Entziehe das Ausführungsrecht und gewähre es nur, wem es zusteht: `revoke execute on function public.<name>(…) from public, anon;` und `grant execute on function public.<name>(…) to authenticated;`. Ruft eine Policy die Funktion auf, muss diese Policy `to authenticated` lauten, sonst scheitern Abfragen ohne Anmeldung an der fehlenden Berechtigung. Funktionen nur für Trigger gehören in ein nicht öffentliches Schema.

    Braucht die Fakten F-61e, F-61j, F-61u · mindestens Konfidenz „sicher“ · 5 Kalibrierfälle

  • RW-DB-009hoch

    Eine Datenbankfunktion läuft mit vollen Rechten auf einem Suchpfad, den andere umbiegen können

    Art. 32 DSGVO · Eine `security definer`-Funktion läuft mit den Rechten ihres Erstellers. Ohne festen Suchpfad kann ein Angreifer ihr eine eigene Tabelle unterschieben und diese Rechte übernehmen. Supabase warnt selbst davor.

    Was dann zu tun ist: `set search_path = ''` in die Funktionsdefinition aufnehmen und alle Tabellennamen im Rumpf voll qualifizieren (`public.tabelle`).

    Braucht die Fakten F-61b, F-61u · mindestens Konfidenz „sicher“ · 4 Kalibrierfälle

  • RW-DB-010hoch

    Eine Tabelle mit Personendaten wird über den Echtzeitkanal aktiv verteilt

    Art. 5 Abs. 1 lit. f, Art. 32 DSGVO · In der Echtzeit-Publikation wird jede Änderung an alle offenen Kanäle zugestellt. Die Zeile ist damit nicht nur abrufbar, sie wird aktiv verteilt. Datenschutzrechtlich ist das in der Regel zugleich ein Verstoß gegen die datenschutzfreundliche Voreinstellung (Art. 25 Abs. 2 DSGVO); die Einordnung prüft die Kanzlei. Voreingestellt darf nur zugänglich sein, was für den Zweck erforderlich ist.

    Was dann zu tun ist: Die Tabelle aus der Publikation nehmen (`alter publication supabase_realtime drop table …`), oder sicherstellen, dass die Zugriffsregel auch im Echtzeitkanal greift und nicht nur bei der Abfrage.

    Braucht die Fakten F-55, F-58b, F-60b · mindestens Konfidenz „sicher“ · 3 Kalibrierfälle

  • RW-FB-001Blocker

    Deine Firebase-Regeln erlauben jedem alles

    Art. 32 DSGVO · `allow read, write: if true` gibt die gesamte Datenbank für jeden frei, der die Projektkennung kennt, und die steht im ausgelieferten Bündel.

    Was dann zu tun ist: Die Regel an den angemeldeten Nutzer binden: `allow read, write: if request.auth != null && request.auth.uid == userId;`

    Braucht den Fakt F-62b · mindestens Konfidenz „sicher“ · 3 Kalibrierfälle

  • RW-FN-001hoch

    Deine Serverfunktionen kann jeder aufrufen, auch ohne Anmeldung

    Art. 32 DSGVO · In einem der sechs geprüften Projekte standen 83 Funktionen so offen. Ruft eine davon ein KI-Modell auf, verbraucht jeder Fremde dein Guthaben; schreibt sie in die Datenbank, schreibt jeder Fremde mit.

    Was dann zu tun ist: Prüfe in jeder Funktion den angemeldeten Nutzer im Code (`supabase.auth.getUser()` mit dem Authorization-Header) und brich ohne gültigen Nutzer ab. `verify_jwt = true` allein genügt nicht: Der öffentliche anon-Schlüssel ist selbst ein gültiges JWT. Ausgenommen bleiben Webhooks, die gar kein Nutzertoken haben können. Dort gehört stattdessen die Signaturprüfung des Absenders in den Funktionsrumpf.

    Braucht die Fakten F-61a, F-61n · mindestens Konfidenz „sicher“ · 4 Kalibrierfälle

  • RW-FN-002hoch

    Eine Serverfunktion handelt mit vollen Datenbankrechten für eine Kennung aus der Anfrage, ohne den Nutzer zu prüfen

    Art. 32 DSGVO · Die Funktion arbeitet mit dem `service_role`-Schlüssel, der jede Zugriffsregel umgeht, und nimmt die Nutzer- oder Datensatzkennung aus dem Anfragekörper. Wer die Kennung eines anderen schickt, liest oder ändert dessen Daten. Für den Aufruf genügt der öffentliche anon-Schlüssel, auch mit `verify_jwt = true`.

    Was dann zu tun ist: Ermittle den Nutzer in der Funktion aus dem Authorization-Header (`supabase.auth.getUser()`) und verwende dessen ID statt einer Kennung aus dem Anfragekörper. Wo eine fremde Kennung fachlich nötig ist, prüfe die Berechtigung dafür ausdrücklich.

    Braucht den Fakt F-61c · mindestens Konfidenz „sicher“ · 3 Kalibrierfälle

  • RW-FN-003hoch

    Eine Serverfunktion verschickt Mails an jede Adresse, die der Aufrufer nennt

    Art. 32 DSGVO · Die Funktion nimmt den Empfänger aus der Anfrage und prüft nicht, wer fragt. Jeder kann darüber Mails unter deiner verifizierten Absenderdomain verschicken, mit eigenem Betreff und Text auch Phishing. Der Versanddienst sperrt bei Beschwerden die Domain, und deine echten Mails kommen nicht mehr an. Kommt nur die Adresse aus der Anfrage, der Text aber nicht, bleibt Massenversand an fremde Adressen.

    Was dann zu tun ist: Prüfe den angemeldeten Nutzer, bevor die Funktion versendet, und nimm Empfänger und Inhalt nicht ungeprüft aus der Anfrage. Ein Kontaktformular schickt an die eigene, feste Adresse und setzt die Adresse des Absenders nur als Antwortadresse. Eine Ratenbegrenzung oder ein Captcha gehört davor.

    Braucht die Fakten F-61m, F-61mi · mindestens Konfidenz „sicher“ · 4 Kalibrierfälle

  • RW-FN-004hoch

    Ein Webhook nimmt Nachrichten an, ohne die Signatur des Absenders zu prüfen

    Art. 32 DSGVO · Die Funktion glaubt jeder Anfrage, die wie eine Nachricht des Anbieters aussieht. Wer ihre Adresse kennt, schickt eine gefälschte Zahlungsbestätigung und schaltet sich einen bezahlten Zugang frei oder löst die Verarbeitung beliebig oft aus. Ein Webhook ist ohne Anmeldung erreichbar; sein einziger Schutz ist die Signatur.

    Was dann zu tun ist: Prüfe am Anfang jedes Webhooks die Signatur mit dem Werkzeug des Anbieters (`stripe.webhooks.constructEventAsync` mit dem Rohtext der Anfrage, `new Webhook(secret).verify` bei Svix) oder vergleiche eine selbst gerechnete HMAC über den Rohtext zeitkonstant. Lehne eine Anfrage ohne gültige Signatur mit 400 ab und lies das Geheimnis nur aus der Umgebung.

    Braucht den Fakt F-61w · mindestens Konfidenz „sicher“ · 3 Kalibrierfälle

  • RW-API-002hoch

    Auch deine eigene Schnittstelle nimmt Anfragen von jeder fremden Seite an

    Art. 32 DSGVO · Mit `Access-Control-Allow-Origin: *` kann jede fremde Seite im Browser deiner angemeldeten Nutzer deine Schnittstelle aufrufen, mit deren Sitzung.

    Was dann zu tun ist: In `next.config`, `vercel.json`, der Middleware oder der Route selbst die eigene Produktionsdomain eintragen statt `*`, und nur die tatsächlich gebrauchten Methoden erlauben.

    Braucht den Fakt F-63b · mindestens Konfidenz „sicher“ · 2 Kalibrierfälle

  • RW-SEC-006hoch

    In deiner Bau- oder Containerdatei steht ein Zugangsdatum im Klartext

    Art. 32 DSGVO · Ein Wert in `.github/workflows`, `Dockerfile` oder `docker-compose.yml` liegt im Repository und im gebauten Abbild. Beides wird weitergegeben, ohne dass jemand an ein Geheimnis denkt.

    Was dann zu tun ist: Den Wert entfernen und über die Geheimnisverwaltung setzen: `${{ secrets.NAME }}` im Workflow, das Secret-Feature beim Container. Danach den Schlüssel beim Anbieter wechseln.

    Braucht den Fakt F-64b · mindestens Konfidenz „wahrscheinlich“ · 2 Kalibrierfälle

  • RW-SEC-007Blocker

    Der Schlüssel mit vollen Rechten liegt in einer Datei, die im Browser landet

    Art. 32 DSGVO · Der `service_role`-Schlüssel umgeht jede Zugriffsregel. Steht er im ausgelieferten Bündel, liest ihn jeder Besucher mit den Entwicklerwerkzeugen, und hat damit die vollständige Datenbank.

    Was dann zu tun ist: Schlüssel im Anbieterkonto wechseln und den Aufruf in eine Serverroute oder Edge Function verlegen. Im Browser gehört ausschließlich der `anon`-Schlüssel.

    Braucht den Fakt F-66 · mindestens Konfidenz „wahrscheinlich“ · 2 Kalibrierfälle

  • RW-SEC-008hoch

    Deine Versionsgeschichte liegt mit im Archiv, die alten Schlüssel darin auch

    Art. 32 DSGVO · Ein gelöschter Schlüssel ist nicht weg, solange er in der Versionsgeschichte steht. Wer den Ordner `.git/` bekommt, bekommt jeden früheren Stand, auch den vor dem Löschen.

    Was dann zu tun ist: Jeden Schlüssel beim Anbieter wechseln. Die Historie zu säubern hilft erst danach, und nur, solange niemand sonst eine Kopie hat.

    Braucht die Fakten F-88g, F-67 · mindestens Konfidenz „sicher“ · 3 Kalibrierfälle

  • RW-DEP-001hochEntwurf: wird noch nicht angewendet

    In deinen Bausteinen stecken bekannte Sicherheitslücken

    Art. 32 Abs. 1 lit. d DSGVO · Eine Lücke mit eigener Kennung ist öffentlich dokumentiert und wird automatisiert gesucht. Art. 32 verlangt ein Verfahren zur regelmäßigen Überprüfung. Eine offene, bekannte Lücke ist dessen Gegenteil.

    Was dann zu tun ist: `npm audit fix` ausführen und die Pakete, die dabei stehen bleiben, einzeln aktualisieren. Wo kein Update existiert, das Paket ersetzen.

    Braucht den Fakt F-89a · mindestens Konfidenz „sicher“ · 4 Kalibrierfälle

  • RW-DEP-003mittel

    Ein Baustein hat eine bekannte Lücke geringerer Schwere oder steckt nur im Entwicklungswerkzeug

    Art. 32 Abs. 1 lit. d DSGVO · Eine Lücke der Stufe mittel oder gering, oder eine in einem Paket, das nur beim Entwickeln läuft, betrifft den Livebetrieb selten unmittelbar. Offen bleibt sie trotzdem, und sie gehört ins nächste Update.

    Was dann zu tun ist: Aktualisiere die betroffenen Pakete beim nächsten Wartungstermin und prüfe danach erneut.

    Braucht die Fakten F-128g, F-128a · mindestens Konfidenz „sicher“ · 3 Kalibrierfälle

  • RW-DEP-002geringEntwurf: wird noch nicht angewendet

    Eine Abhängigkeit steht auf „immer das Neueste“

    Art. 32 Abs. 1 lit. b DSGVO ‹K› · Mit `*`, `latest` oder einer Git-Adresse installiert jeder Bau eine andere Fassung. Was heute geprüft ist, kann morgen ein anderes Paket sein. Das ist der Weg, über den Lieferkettenangriffe wirken. ‹K›

    Was dann zu tun ist: Versionen fest eintragen und die Sperrdatei (`package-lock.json`, `pnpm-lock.yaml`) mit einchecken, damit jeder Bau dasselbe installiert.

    Braucht den Fakt F-89c · mindestens Konfidenz „sicher“ · 2 Kalibrierfälle

  • RW-EC-012hoch

    Den zu zahlenden Betrag rechnet der Browser aus

    Art. 32 Abs. 1 lit. b DSGVO (Integrität) · Was der Browser rechnet, kann der Browser ändern. In den dokumentierten Fällen dieser Bauart wurde die Bezahlschranke über die Entwicklerwerkzeuge umgangen. Der Schaden ist unmittelbar wirtschaftlich, und er fällt erst auf, wenn ihn jemand nutzt.

    Was dann zu tun ist: Berechne den Betrag auf dem Server aus Produktkennung und Menge. Der Browser darf sagen, WAS bestellt wird, nie, was es kostet.

    Braucht den Fakt F-72f · mindestens Konfidenz „sicher“ · 3 Kalibrierfälle

  • RW-WEB-001hoch

    Die ausgelieferte Seite wirft einen unbehandelten JavaScript-Fehler

    ECMAScript-Laufzeit · Ein unbehandelter Fehler bricht mindestens den betroffenen Ausführungspfad ab. Je nach Zeitpunkt bleibt die Seite leer, ein Formular reagiert nicht oder ein Checkout verliert seinen Zustand.

    Was dann zu tun ist: Reproduziere den Lauf mit derselben URL, behebe die zuerst geworfene Fehlerklasse und ergänze einen Test für genau diesen Nutzerpfad.

    Braucht den Fakt F-112 · mindestens Konfidenz „sicher“ · 2 Kalibrierfälle

  • RW-WEB-002mittel

    Der Deep-Crawl hat noch nicht jede entdeckte Unterseite erreicht

    Prüfabdeckung · Befunde über fehlende Links und nicht vorhandene Dienste gelten nur für die besuchten Seiten. Nicht besuchte URLs bleiben ausdrücklich offen.

    Was dann zu tun ist: Entferne Endlosschleifen aus Filter-, Kalender- oder Suchparametern, ergänze eine vollständige Sitemap und starte den Deep Scan erneut.

    Braucht den Fakt F-118 · mindestens Konfidenz „sicher“ · 2 Kalibrierfälle

  • RW-MAIL-001mittel

    Die lokale SPF-Prüfung findet keinen eindeutigen abschließenden Eintrag

    RFC 7208 · Geprüft wurden lokale DNS-Einträge. include- und redirect-Ziele sowie der vollständige SPF-Auswertungspfad wurden nicht rekursiv aufgelöst. Daraus folgt weder ein bestätigter Authentifizierungsfehler noch eine bestätigte Zustellung.

    Was dann zu tun ist: Prüfe die gesamte SPF-Kette einschließlich include und redirect sowie alle tatsächlich verwendeten Versender, bevor du einen Eintrag ergänzt oder seine Abschlussregel verschärfst.

    Braucht den Fakt F-119 · mindestens Konfidenz „sicher“ · 2 Kalibrierfälle

  • RW-MAIL-002mittel

    Kein lokaler DMARC-Eintrag mit Durchsetzungsrichtlinie gefunden

    RFC 7489 · Die Prüfung sieht nur den lokalen DNS-Eintrag. Eine von der Organisationsdomain geerbte Richtlinie ist offen. Fehlende lokale Angaben beweisen daher keinen fehlenden DMARC-Schutz; tatsächliche Nachrichtenauthentifizierung und Zustellung wurden nicht getestet.

    Was dann zu tun ist: Prüfe zunächst eine geerbte DMARC-Richtlinie sowie SPF-/DKIM-Ausrichtung und Versandberichte. Entscheide danach, ob ein lokaler Eintrag oder eine andere Richtlinie erforderlich ist.

    Braucht den Fakt F-120 · mindestens Konfidenz „sicher“ · 2 Kalibrierfälle

  • RW-MAIL-003gering

    Kein lokaler MTA-STS-Discoveryeintrag gefunden

    RFC 8461 · Geprüft wurde der DNS-Discoveryeintrag unter _mta-sts. Der HTTPS-Abruf und die inhaltliche Validierung einer Richtlinie sowie ihr tatsächlicher Einsatz beim Mailtransport bleiben offen.

    Was dann zu tun ist: Prüfe den _mta-sts-Eintrag und die HTTPS-Richtlinie unter https://mta-sts.<domain>/.well-known/mta-sts.txt gemeinsam mit der Mailkonfiguration.

    Braucht den Fakt F-121 · mindestens Konfidenz „sicher“ · 2 Kalibrierfälle

  • RW-MAIL-004gering

    TLS-Berichte für den Mailtransport sind nicht eingerichtet

    RFC 8460 · Fehlgeschlagene oder herabgestufte TLS-Zustellungen bleiben ohne aggregierte Rückmeldung leichter unbemerkt.

    Was dann zu tun ist: Veröffentliche einen `_smtp._tls`-TXT-Eintrag mit `v=TLSRPTv1` und einer kontrollierten Berichtsadresse.

    Braucht den Fakt F-122 · mindestens Konfidenz „sicher“ · 2 Kalibrierfälle

  • RW-INF-001mittel

    Eine mögliche Staging-, Test- oder Vorschauumgebung ist öffentlich erreichbar

    Angriffsfläche · Der Abruf belegt technische Erreichbarkeit. Er belegt weder eine umgangene Anmeldung noch offengelegte Testkonten oder Produktivdaten. Prüft, ob dieser Host öffentlich sein soll.

    Was dann zu tun ist: Kläre den vorgesehenen Nutzerkreis. Prüfe Anmeldung und Datenzugriffe der Umgebung; schränke einen nicht öffentlichen Host auf Berechtigte ein.

    Braucht den Fakt F-123 · mindestens Konfidenz „sicher“ · 2 Kalibrierfälle

  • RW-INF-002mittel

    Ein möglicher Admin-Host ist öffentlich erreichbar

    Angriffsfläche · Der Abruf belegt technische Erreichbarkeit eines möglichen Verwaltungszugangs. Eine Loginseite allein ist kein Datenleck und beweist nicht, dass die Anmeldung umgangen werden kann.

    Was dann zu tun ist: Prüfe, ob der Verwaltungszugang öffentlich erreichbar sein soll, und kontrolliere Anmeldung, MFA und Rate-Begrenzung. Beschränke den Host bei internem Zweck auf Berechtigte.

    Braucht den Fakt F-124 · mindestens Konfidenz „sicher“ · 2 Kalibrierfälle

  • RW-INF-003hoch

    Eine Staging- oder Admin-Umgebung ist für Suchmaschinen indexierbar

    Suchmaschinenexposition · Der Nebenhost wird leichter gefunden und kann unfertige Inhalte, interne Namen oder Verwaltungswege dauerhaft in Suchindizes tragen.

    Was dann zu tun ist: Sperre zuerst den Zugriff; `noindex` ist nur eine zusätzliche Lage und kein Ersatz für Authentifizierung.

    Braucht den Fakt F-125 · mindestens Konfidenz „sicher“ · 2 Kalibrierfälle

  • RW-INF-004mittel

    Öffentlich erreichbare Nebenhosts liefern schwächere Sicherheitsheader aus

    HTTP-Härtung · Ein Nebenhost kann dadurch Framing, MIME-Sniffing, unnötige Browserrechte oder unverschlüsselte Erstaufrufe schlechter begrenzen als die Hauptseite.

    Was dann zu tun ist: Wende die zentrale Header-Konfiguration auch auf App-, API-, Admin- und Vorschauhosts an und prüfe jeden Host erneut.

    Braucht den Fakt F-126 · mindestens Konfidenz „sicher“ · 2 Kalibrierfälle

  • RW-DNS-001gering

    Die Domain begrenzt Zertifikatsaussteller nicht mit CAA

    RFC 8659 · Ohne CAA veröffentlicht die Domain keine zusätzliche Vorgabe, welche Zertifizierungsstellen Zertifikate ausstellen dürfen.

    Was dann zu tun ist: Veröffentliche CAA-Einträge für die tatsächlich verwendeten Zertifizierungsstellen und halte sie mit dem Hostingwechsel aktuell.

    Braucht den Fakt F-127 · mindestens Konfidenz „sicher“ · 2 Kalibrierfälle

  • RW-SEC-014BlockerEntwurf: wird noch nicht angewendet

    Ein Generalschlüssel steht im ausgelieferten JavaScript deiner Seite

    Art. 32 Abs. 1 DSGVO ‹K› · Jeder Besucher kann den Schlüssel mit den Entwicklerwerkzeugen lesen. Ein `service_role`-Schlüssel umgeht jede Zugriffsregel der Datenbank, ein Stripe-Live-Schlüssel löst Zahlungsvorgänge im Namen deines Kontos aus. Ob daraus eine Meldepflicht folgt, prüft in der Regel die Kanzlei.

    Was dann zu tun ist: Widerrufe den Schlüssel sofort beim Anbieter und stelle einen neuen aus. Entferne ihn aus dem Frontend; Zugriffe mit diesem Schlüssel gehören in eine Serverfunktion (Edge Function, API-Route), die ihn aus einer Umgebungsvariable auf dem Server liest.

    Braucht den Fakt F-130 · mindestens Konfidenz „sicher“ · 2 Kalibrierfälle

  • RW-SEC-015hochEntwurf: wird noch nicht angewendet

    Ein Zugangsschlüssel eines Dienstes steht im ausgelieferten JavaScript deiner Seite

    Art. 32 Abs. 1 DSGVO ‹K› · Jeder Besucher kann den Schlüssel lesen und den Dienst auf deine Rechnung nutzen, etwa ein KI-Modell, den Mailversand oder ein Code-Repository.

    Was dann zu tun ist: Widerrufe den Schlüssel beim Anbieter, stelle einen neuen aus und rufe den Dienst nur noch über eine Serverfunktion auf, die den Schlüssel serverseitig hält.

    Braucht den Fakt F-131 · mindestens Konfidenz „sicher“ · 2 Kalibrierfälle

  • RW-SEC-009hoch

    Ein Laufzeitpaket hat eine bekannte kritische oder hohe Schwachstelle

    OSV-Datenbank · Die exakte Version aus der Sperrdatei wurde von OSV einem Advisory der Stufe kritisch oder hoch zugeordnet, oder einer Schadcode-Meldung. Ob der verwundbare Codepfad erreichbar ist, ist als Nächstes zu prüfen.

    Was dann zu tun ist: Aktualisiere auf eine laut Advisory nicht betroffene Version, führe die Tests aus und wiederhole den OSV-Abgleich mit der neuen Sperrdatei.

    Braucht die Fakten F-128, F-128a · mindestens Konfidenz „sicher“ · 4 Kalibrierfälle

  • RW-WEB-003Hinweis

    Die OSV-Datenbank war während des Deep Scans nicht erreichbar

    Prüfabdeckung · Der Bericht kann für diesen Lauf keine Aussage über bekannte Schwachstellen der exakten Paketversionen treffen.

    Was dann zu tun ist: Wiederhole den Deep Scan beziehungsweise nur den Abhängigkeitsabgleich, sobald OSV erreichbar ist.

    Braucht den Fakt F-129 · mindestens Konfidenz „sicher“ · 2 Kalibrierfälle

Recht

Recht · 122 Regeln

Gemessen an der ausgelieferten Seite: Diese Regeln entscheiden über Pflichtangaben, Fristen und Erklärungen, wir wenden sie an, wir erfinden sie nicht. Solange eine Rechtsregel (aktuell alle in diesem Abschnitt) keine anwaltliche Freigabe trägt, erscheint sie im Bericht höchstens als Risiko und nie als Verstoß.

  • RW-IM-002hoch

    Dein Impressum fehlt oder ist leer

    § 5 DDG, § 18 Abs. 1 MStV · Fehlendes oder inhaltsleeres Impressum ist abmahnfähig; die Kosten trägt der Anbieter.

    Was dann zu tun ist: Lege eine Impressumsseite an, die von jeder Seite in höchstens zwei Klicks erreichbar ist.

    Braucht die Fakten F-01, F-21, F-22 · mindestens Konfidenz „sicher“ · 4 Kalibrierfälle

  • RW-IM-001hoch

    Deine Umsatzsteuer-Identifikationsnummer fehlt im Impressum

    § 5 Abs. 1 Nr. 6 DDG i. V. m. § 27a UStG, § 139c AO · Fehlt die USt-IdNr., obwohl eine erteilt wurde, ist die Pflichtangabe unvollständig. Dasselbe gilt für eine Wirtschafts-Identifikationsnummer (§ 139c AO), sobald sie dir mitgeteilt wurde. Das Bundeszentralamt für Steuern vergibt sie seit November 2024 schrittweise, auch an Kleinunternehmer. Die Kleinunternehmerregelung allein befreit nicht von der Angabe.

    Was dann zu tun ist: Ergänze die USt-IdNr. im Impressum. Hat dir das Bundeszentralamt für Steuern eine Wirtschafts-Identifikationsnummer mitgeteilt, ergänze auch sie. Diese Nummer prüfen wir hier nicht.

    Braucht die Fakten F-21, F-23g, F-08 · mindestens Konfidenz „sicher“ · 4 Kalibrierfälle

  • RW-IM-003hoch

    Deine ladungsfähige Anschrift fehlt im Impressum

    § 5 Abs. 1 Nr. 1 DDG · Ein Postfach genügt nicht; die Anschrift muss zustellungsfähig sein.

    Was dann zu tun ist: Ergänze Straße mit Hausnummer sowie Postleitzahl und Ort.

    Braucht die Fakten F-01, F-23a · mindestens Konfidenz „sicher“ · 4 Kalibrierfälle

  • RW-IM-004hoch

    Im Impressum steht nicht, wie deine Firma vollständig heißt

    § 5 Abs. 1 Nr. 1 DDG · Der Name des Anbieters ist die Grundangabe des Impressums; bei juristischen Personen gehört der Rechtsformzusatz dazu. Fehlt er, ist die Pflichtangabe unvollständig und abmahnfähig.

    Was dann zu tun ist: Schreibe den Firmennamen so ins Impressum, wie er im Register steht, mit Rechtsformzusatz, also „Muster GmbH“ und nicht „Muster“.

    Braucht den Fakt F-23b · mindestens Konfidenz „sicher“ · 4 Kalibrierfälle

  • RW-IM-005hoch

    Es steht nicht drin, wer die Firma vertritt

    § 5 Abs. 1 Nr. 1 DDG · Ohne die Vertretungsberechtigten weiß niemand, an wen eine Erklärung zu richten ist. Die Angabe ist Pflicht und abmahnfähig.

    Was dann zu tun ist: Ergänze im Impressum „Vertreten durch:“ und die Namen der Geschäftsführung oder des Vorstands.

    Braucht den Fakt F-23c · mindestens Konfidenz „sicher“ · 4 Kalibrierfälle

  • RW-IM-006hoch

    Im Impressum steht keine E-Mail-Adresse

    § 5 Abs. 1 Nr. 2 DDG · Die E-Mail-Adresse ist die einzige Kontaktangabe, die § 5 Abs. 1 Nr. 2 DDG ausdrücklich nennt. Ein Kontaktformular ersetzt sie nicht.

    Was dann zu tun ist: Schreibe eine erreichbare E-Mail-Adresse ins Impressum, nicht nur einen Link auf ein Formular.

    Braucht den Fakt F-23d · mindestens Konfidenz „sicher“ · 4 Kalibrierfälle

  • RW-IM-007geringEntwurf: wird noch nicht angewendet

    Außer der E-Mail gibt es keinen zweiten schnellen Kontaktweg

    § 5 Abs. 1 Nr. 2 DDG ‹K› (EuGH C-298/07) · § 5 Abs. 1 Nr. 2 DDG verlangt Angaben, die eine schnelle Kontaktaufnahme und unmittelbare Kommunikation ermöglichen. Eine Telefonnummer ist dafür nicht zwingend. Ein gleichwertiger Weg genügt.

    Was dann zu tun ist: Ergänze eine Telefonnummer oder ein Kontaktformular mit zugesagter kurzer Antwortzeit. Beides zählt.

    Braucht den Fakt F-23e · mindestens Konfidenz „sicher“ · 4 Kalibrierfälle

  • RW-IM-008hoch

    Du bist eingetragen, die Registernummer fehlt im Impressum

    § 5 Abs. 1 Nr. 4 DDG · Register und Registernummer sind bei eingetragenen Unternehmen stets anzugeben. Fehlen sie, ist die Pflichtangabe unvollständig.

    Was dann zu tun ist: Ergänze Registergericht und Registernummer, zum Beispiel „Amtsgericht Charlottenburg, HRB 123456“.

    Braucht den Fakt F-23f · mindestens Konfidenz „sicher“ · 4 Kalibrierfälle

  • RW-IM-009hoch

    Deine Aufsichtsbehörde fehlt im Impressum

    § 5 Abs. 1 Nr. 3 DDG · Wer eine erlaubnispflichtige Tätigkeit anbietet, muss die zuständige Aufsichtsbehörde nennen. Ohne die Angabe ist das Impressum unvollständig.

    Was dann zu tun ist: Ergänze die zuständige Behörde mit Anschrift oder Web-Adresse.

    Braucht den Fakt F-23h · mindestens Konfidenz „sicher“ · 4 Kalibrierfälle

  • RW-IM-010hoch

    Berufsbezeichnung und Kammer fehlen im Impressum

    § 5 Abs. 1 Nr. 5 lit. a und b DDG · Bei Kammerberufen sind die zuständige Kammer und die verliehene Berufsbezeichnung samt verleihendem Staat anzugeben.

    Was dann zu tun ist: Ergänze Kammer und Berufsbezeichnung, zum Beispiel „Rechtsanwältin (verliehen in der Bundesrepublik Deutschland), Rechtsanwaltskammer Berlin“.

    Braucht den Fakt F-23i · mindestens Konfidenz „sicher“ · 4 Kalibrierfälle

  • RW-IM-011mittel

    Es fehlt der Hinweis, wo die Regeln deines Berufs nachzulesen sind

    § 5 Abs. 1 Nr. 5 lit. c DDG · Anzugeben sind die Bezeichnung der berufsrechtlichen Regelungen und wie sie zugänglich sind. Ein Verweis ohne Fundstelle genügt nicht.

    Was dann zu tun ist: Ergänze die Namen der einschlägigen Regelungen und einen Link, unter dem sie abrufbar sind.

    Braucht den Fakt F-23i2 · mindestens Konfidenz „sicher“ · 4 Kalibrierfälle

  • RW-IM-012mittel

    Bei deinen Beiträgen steht nicht, wer dafür verantwortlich ist

    § 18 Abs. 2 MStV · Journalistisch-redaktionelle Angebote brauchen eine namentlich verantwortliche Person. Fehlt sie, ist das eine Ordnungswidrigkeit nach § 115 MStV.

    Was dann zu tun ist: Ergänze im Impressum „Inhaltlich verantwortlich nach § 18 Abs. 2 MStV:“ mit Name und Anschrift.

    Braucht den Fakt F-23j · mindestens Konfidenz „sicher“ · 3 Kalibrierfälle

  • RW-IM-013gering

    Der Verantwortliche steht ohne Anschrift im Impressum

    § 18 Abs. 2 MStV · § 18 Abs. 2 MStV verlangt Name UND Anschrift der verantwortlichen Person. Ein Kürzel ohne Anschrift genügt nicht.

    Was dann zu tun ist: Ergänze hinter dem Namen die ladungsfähige Anschrift der verantwortlichen Person.

    Braucht den Fakt F-23j2 · mindestens Konfidenz „sicher“ · 3 Kalibrierfälle

  • RW-IM-014geringEntwurf: wird noch nicht angewendet

    Dein Impressum verweist auf eine abgeschaltete Streitschlichtungsplattform

    Art. 14 ODR-VO (außer Kraft seit 20.07.2025) ‹K› · Aus dem Link folgt kein Verstoß. Er ist ein Zeichen dafür, dass der Rechtstext seit mehr als einem Jahr nicht angefasst wurde, und ein Link, der ins Leere führt, ist selbst irreführend.

    Was dann zu tun ist: Entferne den Link auf ec.europa.eu/consumers/odr und prüfe bei der Gelegenheit, was sonst noch aus der Zeit vor Juli 2025 stammt.

    Braucht den Fakt F-23k · mindestens Konfidenz „sicher“ · 4 Kalibrierfälle

  • RW-IM-015mittelEntwurf: wird noch nicht angewendet

    Deine Berufshaftpflichtversicherung steht nicht im Impressum

    § 2 Abs. 1 Nr. 11 DL-InfoV ‹K› · Die Dienstleistungs-Informationspflichten-Verordnung verlangt bei reglementierten Berufen Name und Anschrift des Versicherers und den räumlichen Geltungsbereich.

    Was dann zu tun ist: Ergänze Versicherer, dessen Anschrift und den räumlichen Geltungsbereich der Versicherung.

    Braucht den Fakt F-23o · mindestens Konfidenz „sicher“ · 4 Kalibrierfälle

  • RW-IM-016mittel

    Deine Gesellschaft wird abgewickelt, das gehört ins Impressum

    § 5 Abs. 1 Nr. 7 DDG · Befindet sich eine Kapitalgesellschaft in Abwicklung oder Liquidation, ist darauf hinzuweisen. Wer damit noch Verträge schließt, verschweigt eine wesentliche Tatsache.

    Was dann zu tun ist: Ergänze im Impressum den Hinweis „in Liquidation“ beziehungsweise „i. L.“ hinter der Firma.

    Braucht den Fakt F-23m · mindestens Konfidenz „sicher“ · 4 Kalibrierfälle

  • RW-IM-017mittelEntwurf: wird noch nicht angewendet

    Dein Produkt ist öffentlich erreichbar, hat aber kein Impressum

    § 18 Abs. 1 MStV ‹K› · § 18 Abs. 1 MStV verlangt Namen und Anschrift von jedem, der Telemedien verbreitet, auch ohne Geschäft. Ausgenommen sind nur rein persönliche oder familiäre Angebote.

    Was dann zu tun ist: Entweder nimmst du die Seite hinter eine Anmeldung, oder es gehört eine Seite mit Name und Anschrift dazu.

    Braucht die Fakten F-21, F-22 · mindestens Konfidenz „sicher“ · 4 Kalibrierfälle

  • RW-IM-018mittel

    Dein Impressum ist nicht von jeder Seite aus erreichbar

    § 5 Abs. 1 DDG · § 5 DDG verlangt „leicht erkennbar, unmittelbar erreichbar und ständig verfügbar“. Ein Impressum, das nur die Startseite verlinkt, erfüllt das nicht, auch dann nicht, wenn es die Seite gibt.

    Was dann zu tun ist: Setze den Link in den Fuß des gemeinsamen Layouts, nicht auf die Startseite. Dann steht er auf jeder Unterseite.

    Braucht den Fakt F-21b · mindestens Konfidenz „sicher“ · 4 Kalibrierfälle

  • RW-IM-019hoch

    Die Impressumsseite liegt im Projekt, ist aber nicht erreichbar

    § 5 Abs. 1 DDG · Eine Seite, die niemand aufrufen kann, erfüllt keine Informationspflicht. Rechtlich ist das derselbe Zustand wie „kein Impressum“.

    Was dann zu tun ist: Die Datei ist da, die Route nicht: Prüfe Verlinkung und Auslieferung. Meistens fehlt nur der Link im Layout oder die Route ist nicht gebaut.

    Braucht die Fakten F-21z, F-21 · mindestens Konfidenz „sicher“ · 4 Kalibrierfälle

  • RW-IM-020hoch

    In deinem Impressum steht noch ein Platzhalter

    § 5 Abs. 1 DDG · „Max Mustermann“ oder „[Firmenname]“ im Impressum erfüllt keine Pflichtangabe. Wer damit online geht, hat rechtlich kein Impressum.

    Was dann zu tun ist: Ersetze jeden Platzhalter in der Impressumsdatei durch die echten Angaben.

    Braucht den Fakt F-31i · mindestens Konfidenz „sicher“ · 4 Kalibrierfälle

  • RW-IM-021hochEntwurf: wird noch nicht angewendet

    Die Anschrift im Impressum ist nicht deine eigene

    § 5 Abs. 1 Nr. 1 DDG ‹K› · Verlangt ist eine ladungsfähige Anschrift: der Ort, an dem dir eine Klage zugestellt werden kann. Eine c/o-Adresse oder ein Büroservice ist das in aller Regel nicht.

    Was dann zu tun ist: Trage die Anschrift ein, unter der du tatsächlich erreichbar bist. Wer keine geschäftliche Adresse hat, muss die private nennen. Das ist unbequem und trotzdem die Rechtslage.

    Braucht den Fakt F-23a2 · mindestens Konfidenz „sicher“ · 4 Kalibrierfälle

  • RW-IM-022geringEntwurf: wird noch nicht angewendet

    Die Aufsichtsbehörde ist genannt, aber nicht zu erreichen

    § 5 Abs. 1 Nr. 3 DDG ‹K› · „Angaben zur zuständigen Aufsichtsbehörde“ meint nach herrschender Auffassung mehr als den Namen: Anschrift oder Web-Adresse gehören dazu.

    Was dann zu tun ist: Ergänze hinter dem Behördennamen deren Anschrift oder Web-Adresse.

    Braucht den Fakt F-23h2 · mindestens Konfidenz „sicher“ · 3 Kalibrierfälle

  • RW-IM-023gering

    In deinen automatischen E-Mails fehlen die Pflichtangaben

    § 35a GmbHG, § 37a HGB, § 80 AktG · Bestellbestätigungen, Rechnungen und Systemnachrichten sind Geschäftsbriefe. Es gelten dieselben Pflichtangaben wie auf Briefpapier; Verstöße können mit Zwangsgeld durchgesetzt werden.

    Was dann zu tun ist: Ergänze in der Mail-Vorlage einen festen Fuß mit Firma, Rechtsform, Sitz, Registergericht, Registernummer und Vertretungsberechtigten.

    Braucht den Fakt F-108 · mindestens Konfidenz „sicher“ · 4 Kalibrierfälle

  • RW-RT-001hoch

    In deinen Rechtstexten stehen noch Platzhalter

    § 5 DDG, Art. 13 DSGVO · Ein Rechtstext mit `[Firmenname]` oder `Max Mustermann` erfüllt keine Informationspflicht.

    Was dann zu tun ist: Ersetze alle Platzhalter durch die echten Angaben.

    Braucht den Fakt F-31 · mindestens Konfidenz „sicher“ · 2 Kalibrierfälle

  • RW-DS-001hoch

    Deine Datenschutzerklärung ist nicht erreichbar

    Art. 13 DSGVO · Wer personenbezogene Daten verarbeitet, muss darüber informieren, ausnahmslos.

    Was dann zu tun ist: Lege eine Datenschutzerklärung an und verlinke sie von jeder Seite.

    Braucht den Fakt F-24 · mindestens Konfidenz „sicher“ · 4 Kalibrierfälle

  • RW-DS-002mittel

    Deine Datenschutzerklärung nennt nicht alle Betroffenenrechte

    Art. 13 Abs. 2 lit. b, Art. 15–21 DSGVO · Sechs Rechte sind zu nennen: Auskunft, Berichtigung, Löschung, Einschränkung, Übertragbarkeit, Widerspruch.

    Was dann zu tun ist: Ergänze die fehlenden Rechte samt Hinweis auf das Beschwerderecht bei der Aufsichtsbehörde.

    Braucht die Fakten F-24, F-25r-vollstaendig · mindestens Konfidenz „sicher“ · 3 Kalibrierfälle

  • RW-CO-001Blocker

    Mess- oder Werbedienste werden vor Einwilligung kontaktiert

    § 25 Abs. 1 TDDDG · Der Browser beobachtete Kontakte zu Mess- oder Werbediensten auf den tatsächlich geprüften Seiten vor einer Einwilligung. Prüft die konkreten Anfragen und ihre Notwendigkeit; ein Hostname allein beweist keine rechtswidrige Verarbeitung.

    Was dann zu tun ist: Prüfe die beobachteten Anfragen auf allen genannten Seiten und blockiere nicht notwendige Mess- oder Werbefunktionen bis zur Einwilligung. Wiederhole den Kaltlauf und den Ablehnen-Lauf.

    Braucht den Fakt F-35 · mindestens Konfidenz „sicher“ · 3 Kalibrierfälle

  • RW-CO-002mittel

    Fremde Server werden vor der Einwilligung kontaktiert

    Art. 6 Abs. 1 DSGVO · Beim Abruf wird die IP-Adresse des Besuchers an den Dritten übertragen.

    Was dann zu tun ist: Binde Schriften, Karten und Videos selbst ein oder lade sie erst nach der Einwilligung.

    Braucht den Fakt F-34 · mindestens Konfidenz „sicher“ · 2 Kalibrierfälle

  • RW-CO-008HinweisEntwurf: wird noch nicht angewendet

    Bibliotheken, Bilder oder Schriften kommen von fremden Servern

    Art. 6 Abs. 1 DSGVO ‹K› · Beim Abruf erhält der Betreiber des fremden Servers die IP-Adresse des Besuchers. Ob dafür eine tragfähige Rechtsgrundlage besteht, ist gesondert zu prüfen; die Einstufung ist rechtlich gegenzuprüfen.

    Was dann zu tun ist: Liefere Bibliotheken, Bilder und Schriften selbst aus oder nenne den Dienst samt Rechtsgrundlage in der Datenschutzerklärung.

    Braucht den Fakt F-34c · mindestens Konfidenz „sicher“ · 2 Kalibrierfälle

  • RW-EC-004hoch

    Dein Bestellknopf ist nicht eindeutig beschriftet

    § 312j Abs. 3 BGB · Ist der Knopf nicht eindeutig beschriftet, kommt kein Vertrag zustande. Der Kunde kann jederzeit zurücktreten.

    Was dann zu tun ist: Beschrifte den Knopf sichtbar mit „Zahlungspflichtig bestellen“.

    Braucht die Fakten F-70, F-72 · mindestens Konfidenz „sicher“ · 3 Kalibrierfälle

  • RW-EC-005hoch

    Du hast laufende Verträge, eine Kündigungsschaltfläche fehlt

    § 312k Abs. 2 BGB · Ohne Kündigungsschaltfläche kann der Kunde jederzeit fristlos kündigen; zudem ist der Verstoß abmahnfähig.

    Was dann zu tun ist: Eine von jeder Seite erreichbare Schaltfläche „Verträge hier kündigen“, ohne Anmeldung, mit Bestätigungsseite.

    Braucht die Fakten F-71, F-74 · mindestens Konfidenz „wahrscheinlich“ · 3 Kalibrierfälle

  • RW-BF-001mittelEntwurf: wird noch nicht angewendet

    Erklärung zur Barrierefreiheit fehlt oder ist inhaltsleer

    § 14 Abs. 1 i. V. m. Anlage 3 Nr. 1 BFSG, § 3 Abs. 1 BFSG · Die Marktüberwachungsbehörde kann Maßnahmen anordnen; ein Verstoß gegen die Informationspflicht ist mit einer Geldbuße bis zu 100.000 Euro bedroht (§ 37 Abs. 1 Nr. 8 i. V. m. Abs. 2 BFSG). Ob er zusätzlich abmahnfähig ist, ist gerichtlich ungeklärt: Zur Frage, ob das BFSG eine Marktverhaltensregelung nach § 3a UWG ist, liegt bis heute keine Entscheidung eines Land- oder Oberlandesgerichts und keine des BGH vor.

    Was dann zu tun ist: Prüfe zuerst, ob dich die Pflicht überhaupt trifft: Bei Dienstleistungen sind Kleinstunternehmen ausgenommen, also Unternehmen mit weniger als zehn Beschäftigten, die entweder höchstens zwei Millionen Euro Jahresumsatz erzielen oder höchstens zwei Millionen Euro Jahresbilanzsumme haben (§ 3 Abs. 3 i. V. m. § 2 Nr. 17 BFSG). Trifft sie dich, verlangt Anlage 3 Nr. 1 BFSG vier Angaben und keine eigene Seite: (a) eine allgemeine Beschreibung der Dienstleistung in barrierefreiem Format, (b) Erläuterungen, die das Verständnis ihrer Durchführung ermöglichen, (c) die Darstellung, wie die Barrierefreiheitsanforderungen erfüllt werden, einschließlich der verbleibenden Barrieren, und (d) die zuständige Marktüberwachungsbehörde. § 14 Abs. 1 BFSG lässt diese Angaben „in seinen Allgemeinen Geschäftsbedingungen oder auf andere deutlich wahrnehmbare Weise“ zu; die AGB genügen.

    Braucht die Fakten F-79, F-80 · mindestens Konfidenz „wahrscheinlich“ · 6 Kalibrierfälle

  • RW-EC-006hoch

    Du verkaufst an Verbraucher, eine Widerrufsbelehrung fehlt

    §§ 312g, 355 BGB, Art. 246a EGBGB · Ohne ordnungsgemäße Belehrung verlängert sich die Widerrufsfrist auf zwölf Monate und vierzehn Tage.

    Was dann zu tun ist: Ergänze eine Widerrufsbelehrung samt Muster-Widerrufsformular.

    Braucht die Fakten F-70, F-02, F-29 · mindestens Konfidenz „sicher“ · 3 Kalibrierfälle

  • RW-KI-001mittel

    Deine Nutzer erfahren nicht, dass sie mit einer KI sprechen

    Art. 50 AI Act · Wer mit einem System spricht, muss das erkennen können. Die Pflicht gilt seit dem 2. August 2026.

    Was dann zu tun ist: Weise vor dem ersten Austausch sichtbar darauf hin, dass die Antworten maschinell erzeugt werden.

    Braucht die Fakten F-77, F-78 · mindestens Konfidenz „wahrscheinlich“ · 3 Kalibrierfälle

  • RW-KI-010Blocker

    Dein Produkt liest die Gefühle von Beschäftigten oder Lernenden

    Art. 5 Abs. 1 lit. f KI-VO (Verordnung (EU) 2024/1689) · Emotionserkennung am Arbeitsplatz und in Bildungseinrichtungen ist eine verbotene Praktik. Das Verbot gilt seit dem 2. Februar 2025 und steht in der höchsten Bußgeldstufe der Verordnung (Art. 99 Abs. 3 KI-VO). Ausgenommen sind ausdrücklich medizinische Gründe und Sicherheitsgründe.

    Was dann zu tun ist: Nimm die Gefühlsauswertung für Beschäftigte und Lernende heraus. Berufst du dich auf einen medizinischen Grund oder einen Sicherheitsgrund, halte ihn schriftlich fest und lass ihn anwaltlich prüfen, bevor das System weiterläuft.

    Braucht die Fakten F-77d, F-77e · mindestens Konfidenz „sicher“ · 4 Kalibrierfälle

  • RW-KI-011Blocker

    Dein Produkt bewertet, wie Menschen sich allgemein verhalten

    Art. 5 Abs. 1 lit. c KI-VO · Die Bewertung oder Einstufung von Menschen anhand ihres allgemeinen Sozialverhaltens ist eine verbotene Praktik, wenn daraus eine benachteiligende Behandlung folgt. Das Verbot gilt seit dem 2. Februar 2025.

    Was dann zu tun ist: Beschränke die Bewertung auf das, was für den konkreten Zweck nötig ist, und trenne sie von Verhalten, das damit nichts zu tun hat. Solange eine Bewertung des allgemeinen Verhaltens im Spiel ist, gehört der Fall vor die anwaltliche Prüfung.

    Braucht den Fakt F-77f · mindestens Konfidenz „sicher“ · 5 Kalibrierfälle

  • RW-KI-012Blocker

    Dein Produkt schließt aus Gesichtern oder Stimmen auf Herkunft, Religion oder Ähnliches

    Art. 5 Abs. 1 lit. g KI-VO · Aus biometrischen Daten auf Rasse, politische Einstellung, Gewerkschaftszugehörigkeit, religiöse oder weltanschauliche Überzeugungen, Sexualleben oder sexuelle Orientierung zu schließen, ist eine verbotene Praktik. Das Verbot gilt seit dem 2. Februar 2025.

    Was dann zu tun ist: Entferne die Ableitung dieser Merkmale. Das reine Wiedererkennen einer Person fällt nicht darunter. Es unterliegt aber weiterhin Art. 9 DSGVO.

    Braucht den Fakt F-77g · mindestens Konfidenz „sicher“ · 3 Kalibrierfälle

  • RW-KI-013Blocker

    Dein Produkt sammelt Gesichtsbilder aus dem Netz ein

    Art. 5 Abs. 1 lit. e KI-VO · Das ungezielte Auslesen von Gesichtsbildern aus dem Internet oder aus Videoüberwachungsaufnahmen zum Aufbau oder zur Erweiterung von Gesichtserkennungsdatenbanken ist eine verbotene Praktik. Das Verbot gilt seit dem 2. Februar 2025.

    Was dann zu tun ist: Stelle das Einsammeln ein und lösche die daraus aufgebaute Datenbank. Bilder, die eine Person selbst hochgeladen hat, sind etwas anderes. Dafür braucht es eine Rechtsgrundlage nach Art. 9 DSGVO, aber sie fallen nicht unter dieses Verbot.

    Braucht den Fakt F-77h · mindestens Konfidenz „sicher“ · 3 Kalibrierfälle

  • RW-KI-014hochEntwurf: wird noch nicht angewendet

    Dein Produkt steuert Menschen mit Mitteln, die sie nicht bemerken ‹K›

    Art. 5 Abs. 1 lit. a KI-VO · Ein KI-System, das mit unterschwelligen oder täuschenden Techniken das Verhalten wesentlich beeinflusst und dadurch einen erheblichen Schaden verursachen kann, ist eine verbotene Praktik. ‹K› Ob ein konkreter Ablauf diese Schwelle erreicht, ist Rechtsanwendung. Aus einer Selbstauskunft stellen wir das nicht fest.

    Was dann zu tun ist: Beschreibe den Ablauf in drei Sätzen und lege ihn der Kanzlei vor. Bis zur Klärung gilt: Was Nutzer nicht bemerken können, gehört sichtbar gemacht.

    Braucht den Fakt F-77i · mindestens Konfidenz „sicher“ · 5 Kalibrierfälle

  • RW-KI-015hochEntwurf: wird noch nicht angewendet

    Dein Produkt nutzt gezielt aus, dass jemand in einer schwachen Lage ist ‹K›

    Art. 5 Abs. 1 lit. b KI-VO · Ein KI-System, das die Schutzbedürftigkeit aufgrund von Alter, Behinderung oder einer besonderen sozialen oder wirtschaftlichen Lage ausnutzt, um das Verhalten wesentlich zu beeinflussen, ist eine verbotene Praktik. ‹K› Ob der Einsatz diese Schwelle erreicht, ist Rechtsanwendung.

    Was dann zu tun ist: Nimm die gezielte Ansprache dieser Gruppen heraus oder lege der Kanzlei dar, warum sie ihnen nützt statt schadet.

    Braucht den Fakt F-77i · mindestens Konfidenz „sicher“ · 5 Kalibrierfälle

  • RW-KI-020hochEntwurf: wird noch nicht angewendet

    Deine KI entscheidet mit über Bewerbung, Kredit, Prüfung oder Zugang ‹K›

    Anhang III i. V. m. Art. 6 Abs. 2 KI-VO · Anhang III stuft diese Einsatzfelder als hochriskant ein. Daran hängen Pflichten des Betreibers: menschliche Aufsicht, Unterrichtung der Beschäftigten und ein Recht der Betroffenen auf Erläuterung. ‹K› Ab wann die Hochrisiko-Vorschriften anzuwenden sind, hat das Digital-Omnibus-Paket verschoben; das genaue Datum und die Einordnung deines Falls gehören vor eine anwaltliche Prüfung.

    Was dann zu tun ist: Das ist keine Mängelmeldung, sondern eine Einstufung: Lege der Kanzlei in drei Sätzen dar, worüber die KI mitentscheidet und wie stark. Daraus ergibt sich, welche der folgenden Pflichten dich trifft.

    Braucht den Fakt F-77j · mindestens Konfidenz „sicher“ · 3 Kalibrierfälle

  • RW-KI-021hoch

    Bei deinen KI-Entscheidungen schaut kein Mensch mehr drauf

    Art. 26 Abs. 2 i. V. m. Art. 14 KI-VO · Der Betreiber eines Hochrisiko-Systems muss die menschliche Aufsicht natürlichen Personen übertragen, die dafür befähigt und ausgestattet sind. Fehlt sie, fehlt eine Kernpflicht der Betreiberrolle.

    Was dann zu tun ist: Benenne eine Person, die jede Entscheidung vor ihrer Wirkung ansehen und ändern kann, und gib ihr die Zeit und die Zugriffsrechte dafür. Ein Knopf „Überschreiben“, den niemand benutzt, genügt nicht.

    Braucht den Fakt F-77k · mindestens Konfidenz „sicher“ · 3 Kalibrierfälle

  • RW-KI-022mittel

    Deine Beschäftigten wissen nicht, dass eine KI sie bewertet

    Art. 26 Abs. 7 KI-VO · Vor der Inbetriebnahme eines Hochrisiko-Systems am Arbeitsplatz sind die Beschäftigtenvertretung und die betroffenen Beschäftigten zu unterrichten. Daneben kann eine Mitbestimmung des Betriebsrats treten.

    Was dann zu tun ist: Eine Seite in einfacher Sprache: welches System, wofür, welche Daten, wer am Ende entscheidet. Vor dem Start, an alle Betroffenen, nicht nur an die Vertretung.

    Braucht den Fakt F-77m · mindestens Konfidenz „sicher“ · 3 Kalibrierfälle

  • RW-KI-023mittel

    Wer von deiner KI-Entscheidung betroffen ist, bekommt keine Erklärung

    Art. 86 KI-VO · Betroffene haben ein Recht darauf, die Rolle des KI-Systems im Entscheidungsverfahren und die wesentlichen Gründe der Entscheidung erklärt zu bekommen. Daneben steht Art. 22 DSGVO für rein automatisierte Entscheidungen.

    Was dann zu tun ist: Ein kurzer Text je Entscheidungsart: was das System berechnet hat, welche Angaben dabei zählten und wer am Ende entschieden hat. Auf Nachfrage herausgeben genügt. Ein Portal braucht es dafür nicht.

    Braucht den Fakt F-77l · mindestens Konfidenz „sicher“ · 3 Kalibrierfälle

  • RW-KI-026mittelEntwurf: wird noch nicht angewendet

    Vor dem Start wurde nicht geprüft, was deine KI mit den Betroffenen macht ‹K›

    Art. 27 KI-VO · Bestimmte Betreiber von Hochrisiko-Systemen müssen vor der ersten Verwendung eine Abschätzung der Auswirkungen auf die Grundrechte durchführen und der Marktüberwachungsbehörde anzeigen. ‹K› Ob dein Einsatz zu diesem Kreis gehört, ist eine Rechtsfrage.

    Was dann zu tun ist: Halte schriftlich fest: welche Personen betroffen sind, welche Schäden entstehen können, welche Aufsicht dagegen steht und was du tust, wenn sich das System irrt. Das ist die Abschätzung. Mehr verlangt die Vorschrift nicht.

    Braucht den Fakt F-77n · mindestens Konfidenz „sicher“ · 3 Kalibrierfälle

  • RW-KI-002mittelEntwurf: wird noch nicht angewendet

    Was dein Modell erzeugt, trägt keine maschinenlesbare Markierung ‹K›

    Art. 50 Abs. 2 KI-VO · Art. 50 Abs. 2 betrifft Anbieter erzeugender KI-Systeme. Die Regel gilt grundsätzlich ab 2. August 2026; für zuvor in Verkehr gebrachte Systeme nennt die Kommission eine Übergangsfrist bis 2. Dezember 2026. Inverkehrbringen, Inhaltsdatum und Ausnahmen werden hier nicht erhoben. Eine fehlende Markierung ist deshalb ein Prüfhinweis, kein festgestellter aktueller Pflichtverstoß. Quelle: EU-Kommission, FAQ zu Art. 50, Stand 24. Juli 2026.

    Was dann zu tun ist: Schreibe beim Erzeugen Content Credentials (C2PA) oder wenigstens einen Eintrag in die Metadaten der Datei. Achte darauf, dass deine eigene Bildverarbeitung sie nicht wieder entfernt. Die meisten Größenänderungen tun genau das.

    Braucht den Fakt F-78d · mindestens Konfidenz „sicher“ · 3 Kalibrierfälle

  • RW-KI-003mittel

    Du wertest Gefühle oder Körpermerkmale aus, ohne es den Betroffenen zu sagen

    Art. 50 Abs. 3 KI-VO · Wer ein Emotionserkennungs- oder biometrisches Kategorisierungssystem betreibt, muss die betroffenen Personen darüber unterrichten. Die Pflicht gilt seit dem 2. August 2026 und steht neben allem, was die Datenschutz-Grundverordnung verlangt.

    Was dann zu tun ist: Ein Satz an der Stelle, an der die Auswertung beginnt, nicht in den AGB. Er nennt, was ausgewertet wird und wozu.

    Braucht den Fakt F-78b · mindestens Konfidenz „sicher“ · 4 Kalibrierfälle

  • RW-KI-004hoch

    Deine erzeugten Bilder zeigen echte Menschen, ohne dass jemand es erfährt

    Art. 50 Abs. 4 KI-VO · Diese Teilprüfung betrifft künstliche Medien mit realen Personen. Art. 50 Abs. 4 erfasst Deepfakes und gilt ab 2. August 2026; nach der Kommissions-FAQ besteht keine rückwirkende Kennzeichnungspflicht für zuvor erstellte Inhalte. Erstellungszeitpunkt, täuschender Eindruck und besondere Ausnahmen sind hier nicht abschließend geklärt. Fehlende Hinweise bleiben deshalb ein Prüfbedarf. Persönlichkeitsrechte sind zusätzlich zu beurteilen.

    Was dann zu tun ist: Setzt die Kennzeichnung an das Bild selbst, nicht in die Bildunterschrift eines Untermenüs: sichtbar dort, wo das Bild steht, und in derselben Sprache wie der Inhalt.

    Braucht den Fakt F-78c · mindestens Konfidenz „sicher“ · 3 Kalibrierfälle

  • RW-KI-005mittelEntwurf: wird noch nicht angewendet

    Deine KI-Texte zu öffentlichen Themen laufen als Menschenwerk ‹K›

    Art. 50 Abs. 4 UAbs. 2 KI-VO · Art. 50 Abs. 4 betrifft KI-Texte zur Information über Angelegenheiten von öffentlichem Interesse, vorbehaltlich menschlicher Prüfung oder redaktioneller Kontrolle mit übernommener redaktioneller Verantwortung. Erstellungszeitpunkt und konkrete Ausnahmen bleiben hier ungeprüft; die Kommissions-FAQ verlangt keine rückwirkende Kennzeichnung für vor dem 2. August 2026 erstellte Inhalte. Der Befund ist ein Klärbedarf, kein abschließender Pflichtverstoß.

    Was dann zu tun ist: Ein Zusatz am Text selbst, „Dieser Beitrag wurde mit KI erstellt“, sichtbar dort, wo der Text beginnt oder endet.

    Braucht den Fakt F-78c · mindestens Konfidenz „sicher“ · 4 Kalibrierfälle

  • RW-KI-006mittelstillgelegt: wird nicht mehr angewendet

    Der Hinweis auf die KI steht nur im Kleingedruckten

    Art. 50 Abs. 5 KI-VO · Die Information muss klar und erkennbar spätestens zum Zeitpunkt der ersten Interaktion vorliegen. Ein Satz in den AGB oder in der Datenschutzerklärung erfüllt das nicht.

    Was dann zu tun ist: Setzt den Hinweis in das Dialogfenster selbst, als erste Zeile oder als Text unter dem Eingabefeld, bevor die erste Nachricht rausgeht.

    Braucht den Fakt F-78a · mindestens Konfidenz „sicher“ · 4 Kalibrierfälle

  • RW-KI-030hochEntwurf: wird noch nicht angewendet

    Du hast ein Modell nachtrainiert, damit bist du Anbieter, nicht nur Nutzer ‹K›

    Art. 25 Abs. 1, Art. 3 Nr. 3 KI-VO · Die KI-Verordnung unterscheidet Betreiber und Anbieter. Wer ein System unter eigenem Namen anbietet oder wesentlich verändert, gilt als Anbieter, mit einem deutlich größeren Pflichtenkatalog. ‹K› Der Rollenwechsel nach Art. 25 Abs. 1 KI-VO betrifft ausdrücklich HOCHRISIKO-KI-Systeme: Wer ein Sprachmodell für einen Support-Chat nachtrainiert, wird dadurch nicht Anbieter im Sinne dieser Vorschrift. Ob eine Feinabstimmung die Schwelle erreicht, hängt vom Umfang der Veränderung ab und ist eine Rechtsfrage.

    Was dann zu tun ist: Das ist keine Mängelmeldung, sondern eine Einordnung, und die wichtigste dieses Kapitels: Ein Solo-Projekt, das ein Modell feinjustiert, rechnet sich fast immer der Betreiberrolle zu. Lege der Kanzlei vor, was du genau verändert hast und unter wessen Namen es läuft.

    Braucht den Fakt F-77o · mindestens Konfidenz „wahrscheinlich“ · 3 Kalibrierfälle

  • RW-KI-031mittelEntwurf: wird noch nicht angewendet

    Zu deinen Trainingsdaten gibt es keine schriftliche Regel zum Urheberrecht ‹K›

    Art. 53 Abs. 1 lit. c KI-VO · Anbieter von Modellen mit allgemeinem Verwendungszweck müssen eine Strategie zur Einhaltung des Urheberrechts auf den Weg bringen, insbesondere zur Beachtung von Nutzungsvorbehalten. ‹K› Ob dich diese Pflicht trifft, hängt daran, ob du durch das Nachtrainieren zum Anbieter geworden bist.

    Was dann zu tun ist: Eine Seite genügt: woher die Daten stammen, wie du Nutzungsvorbehalte prüfst und was du tust, wenn jemand widerspricht. Ohne sie steht im Streitfall Aussage gegen Aussage.

    Braucht den Fakt F-77p · mindestens Konfidenz „sicher“ · 3 Kalibrierfälle

  • RW-KI-032geringEntwurf: wird noch nicht angewendet

    Du veröffentlichst keine Zusammenfassung deiner Trainingsdaten ‹K›

    Art. 53 Abs. 1 lit. d KI-VO · Anbieter von Modellen mit allgemeinem Verwendungszweck müssen eine hinreichend detaillierte Zusammenfassung der zum Training verwendeten Inhalte veröffentlichen. ‹K› Ob dich diese Pflicht trifft, hängt an derselben Rechtsfrage wie die Urheberrechtsstrategie.

    Was dann zu tun ist: Eine öffentlich abrufbare Seite mit den Quellen und Kategorien deines Trainingsmaterials. Die Behörde stellt dafür eine Vorlage bereit. Mehr als deren Felder ist nicht verlangt.

    Braucht den Fakt F-77q · mindestens Konfidenz „sicher“ · 3 Kalibrierfälle

  • RW-KI-040gering

    Bei dir weiß niemand verbindlich, was beim Einsatz dieser KI zu beachten ist

    Art. 4 KI-VO · Anbieter und Betreiber müssen dafür sorgen, dass die Personen, die ihre KI-Systeme bedienen, über ein ausreichendes Maß an KI-Kompetenz verfügen. Die Vorschrift gilt seit dem 2. Februar 2025. Sie verlangt keine Zertifikate, aber im Streitfall einen Nachweis.

    Was dann zu tun ist: Zwei Absätze in deinem Wiki: welches Modell, wofür es benutzt werden darf, wofür ausdrücklich nicht, und was mit den Ausgaben zu geschehen hat, bevor sie jemand nach außen gibt. Einmal von allen Beteiligten gelesen, das ist die Maßnahme.

    Braucht den Fakt F-77r · mindestens Konfidenz „sicher“ · 3 Kalibrierfälle

  • RW-AG-001mittel

    Deine AGB gelten nicht, weil sie niemand lesen kann

    § 305 Abs. 2 BGB · Wer die Bedingungen bei Vertragsschluss nicht zumutbar zur Kenntnis nehmen kann, für den gelten sie nicht. Es gilt dann allein das Gesetz, samt der Haftung, die deine AGB begrenzen sollten.

    Was dann zu tun ist: Lege eine Seite mit den Vertragsbedingungen an, verlinke sie von jeder Seite und binde sie sichtbar in den Bestellvorgang ein.

    Braucht die Fakten F-27, F-27s · mindestens Konfidenz „sicher“ · 4 Kalibrierfälle

  • RW-AG-002HinweisEntwurf: wird noch nicht angewendet

    In deinen AGB fehlen ganze Themen

    §§ 305 ff. BGB, Art. 246a EGBGB ‹K› · Fehlt eine Regelung, gilt an ihrer Stelle das Gesetz. Das ist kein Verstoß, aber es ist selten das, was du wolltest, bei Haftung und Gewährleistung fast nie.

    Was dann zu tun ist: Acht Themen gehören hinein: Vertragsschluss, Preise und Zahlung, Lieferung oder Bereitstellung, Gewährleistung, Haftung, Laufzeit und Kündigung, Streitbeilegung, Speicherung des Vertragstexts.

    Braucht die Fakten F-27, F-28 · mindestens Konfidenz „sicher“ · 3 Kalibrierfälle

  • RW-WR-001hoch

    Deine Widerrufsseite gibt es, aber sie belehrt niemanden

    §§ 312g, 355 BGB, Art. 246a § 1 Abs. 2 EGBGB · Eine Überschrift ohne Text belehrt niemanden. Die Widerrufsfrist beginnt dann nicht zu laufen und endet erst zwölf Monate und vierzehn Tage später.

    Was dann zu tun ist: Setze den vollständigen Belehrungstext samt Muster-Widerrufsformular auf die Seite.

    Braucht die Fakten F-29, F-29s · mindestens Konfidenz „sicher“ · 3 Kalibrierfälle

  • RW-WR-002hoch

    In deiner Widerrufsbelehrung fehlt die Frist oder ihr Beginn

    § 356 Abs. 3 und 4 BGB, Art. 246a § 1 Abs. 2 Satz 1 Nr. 1 EGBGB · Eine Frist ohne Beginn ist keine Frist. Solange nicht ordnungsgemäß belehrt wurde, läuft sie nicht an. Das Widerrufsrecht erlischt dann erst zwölf Monate und vierzehn Tage nach dem Zeitpunkt, zu dem die Frist ohne den Belehrungsfehler begonnen hätte.

    Was dann zu tun ist: Nenne die vierzehntägige Frist und ausdrücklich, womit sie beginnt: bei Ware mit dem Erhalt, bei Dienstleistungen mit dem Vertragsschluss.

    Braucht die Fakten F-29, F-30a · mindestens Konfidenz „sicher“ · 3 Kalibrierfälle

  • RW-WR-003hoch

    In deiner Widerrufsbelehrung steht keine Anschrift, an die man widerrufen kann

    Art. 246a § 1 Abs. 2 Satz 1 Nr. 1 EGBGB · Ohne ladungsfähige Anschrift weiß niemand, wohin ein Widerruf zu richten ist. Die Belehrung ist damit unvollständig und die Frist verlängert sich.

    Was dann zu tun ist: Nimm dieselbe Anschrift wie im Impressum in den Belehrungstext auf: Straße mit Hausnummer, Postleitzahl und Ort. Eine E-Mail-Adresse allein genügt nicht.

    Braucht die Fakten F-29, F-30b · mindestens Konfidenz „sicher“ · 3 Kalibrierfälle

  • RW-WR-004mittel

    Das Muster-Widerrufsformular fehlt

    Art. 246a § 1 Abs. 2 Satz 1 Nr. 1 EGBGB, Anlage 2 zu Art. 246a EGBGB · Das Formular ist Teil der Belehrungspflicht. Fehlt es, ist die Belehrung unvollständig, mit derselben Folge wie eine fehlende Frist.

    Was dann zu tun ist: Übernimm den Wortlaut der Anlage 2 zu Art. 246a EGBGB als Textblock auf der Widerrufsseite. Ein Bild oder eine PDF-Datei allein reicht nicht, wenn der Text nicht auch lesbar auf der Seite steht.

    Braucht die Fakten F-29, F-30c · mindestens Konfidenz „sicher“ · 3 Kalibrierfälle

  • RW-WR-005hoch

    Bei Downloads fehlt der Hinweis, wann das Widerrufsrecht erlischt

    § 356 Abs. 6 BGB, Art. 246a § 1 Abs. 3 Nr. 2 EGBGB · Ohne diesen Hinweis erlischt das Widerrufsrecht nicht. Der Kunde kann den Download vollständig genutzt haben und trotzdem widerrufen. Du musst den Preis erstatten.

    Was dann zu tun ist: Nimm in Belehrung und Bestellvorgang auf, dass das Widerrufsrecht erlischt, sobald du mit ausdrücklicher Zustimmung des Kunden vor Fristablauf mit der Ausführung begonnen hast, und hole diese Zustimmung im Bestellvorgang ausdrücklich ein.

    Braucht den Fakt F-30d · mindestens Konfidenz „sicher“ · 3 Kalibrierfälle

  • RW-WR-006mittelEntwurf: wird noch nicht angewendet

    Bei Dienstleistungen fehlt der Hinweis auf den Wertersatz

    Art. 246a § 1 Abs. 2 Satz 1 Nr. 3 EGBGB, § 357a Abs. 2 BGB ‹K› · Wer nicht auf den Wertersatz hingewiesen hat, bekommt für eine bereits erbrachte Leistung nichts, auch dann nicht, wenn er sie vollständig erbracht hat.

    Was dann zu tun ist: Nimm in die Belehrung auf, dass der Kunde bei vorzeitigem Beginn der Dienstleistung Wertersatz für das bereits Geleistete schuldet, wenn er widerruft.

    Braucht den Fakt F-30e · mindestens Konfidenz „wahrscheinlich“ · 3 Kalibrierfälle

  • RW-WR-007hoch

    Vom Widerrufsrecht erfährt man erst, wenn man danach sucht

    § 312d Abs. 1 BGB, Art. 246a § 1 Abs. 2 EGBGB · Die Belehrung muss VOR der Bestellung vorliegen, nicht irgendwo auf der Seite. Ein Link in der Fußzeile ist keine Belehrung. Die Frist verlängert sich auf zwölf Monate und vierzehn Tage.

    Was dann zu tun ist: Zeige die Belehrung im Bestellvorgang selbst an und lege sie der Bestellbestätigung in Textform bei.

    Braucht den Fakt F-30f · mindestens Konfidenz „sicher“ · 3 Kalibrierfälle

  • RW-WR-008mittelEntwurf: wird noch nicht angewendet

    Deine Seite bietet keine Widerrufsfunktion an

    § 356a BGB (Widerrufsfunktion) ‹K› · Wer Verbraucherverträge über die eigene Seite schließt, muss dort eine gut sichtbare, eindeutig beschriftete Widerrufsfunktion bereitstellen, die auf eine Bestätigung mit der Schaltfläche „Widerruf bestätigen“ führt. Rechtlich gegenzuprüfen: Norm, Stichtag (nach unserem Stand seit dem 19. Juni 2026, Umsetzung der Richtlinie (EU) 2023/2673) und Folgen sind in diesem Entwurf nicht anwaltlich bestätigt.

    Was dann zu tun ist: Setze in den Fußbereich jeder Seite einen Link „Vertrag widerrufen“ auf eine Seite, auf der Name, Vertrag und E-Mail-Adresse eingegeben und mit „Widerruf bestätigen“ abgeschickt werden, und bestätige den Eingang sofort in Textform mit Datum und Uhrzeit.

    Braucht den Fakt F-30g · mindestens Konfidenz „sicher“ · 3 Kalibrierfälle

  • RW-EC-007hochEntwurf: wird noch nicht angewendet

    Über dem Bestellknopf fehlen die Pflichtangaben

    § 312j Abs. 2 BGB ‹K› · Fehlen die Angaben unmittelbar vor der Bestellung, kommt der Vertrag nicht zustande, dieselbe Folge wie beim falsch beschrifteten Knopf.

    Was dann zu tun ist: Setze direkt über den Bestellknopf: wesentliche Merkmale der Ware oder Leistung, Gesamtpreis, Versandkosten und bei laufenden Verträgen die Mindestlaufzeit.

    Braucht den Fakt F-73e · mindestens Konfidenz „wahrscheinlich“ · 3 Kalibrierfälle

  • RW-EC-008mittel

    Welche Zahlungsmittel du nimmst, sieht man erst ganz am Ende

    § 312j Abs. 1 BGB · Zahlungsmittel und Lieferbeschränkungen gehören spätestens an den Anfang des Bestellvorgangs. Der Verstoß ist abmahnfähig und mit einem Bildschirmfoto vollständig belegt.

    Was dann zu tun ist: Zeige beides schon auf der Warenkorbseite: die akzeptierten Zahlungsarten und, ob du nur in bestimmte Länder lieferst.

    Braucht den Fakt F-72e · mindestens Konfidenz „sicher“ · 3 Kalibrierfälle

  • RW-EC-009mittel

    Deine Kunden erfahren nicht, ob die Bestellung angekommen ist

    § 312i Abs. 1 Satz 1 Nr. 3 BGB · Der Zugang der Bestellung ist unverzüglich elektronisch zu bestätigen. Ohne Bestätigung bleibt zwischen dir und dem Kunden offen, ob überhaupt ein Vertrag zustande gekommen ist.

    Was dann zu tun ist: Sende unmittelbar nach dem Absenden eine Mail mit Bestellnummer und Bestellinhalt.

    Braucht den Fakt F-72b · mindestens Konfidenz „sicher“ · 3 Kalibrierfälle

  • RW-EC-010mittel

    Einen Tippfehler kann vor dem Absenden niemand mehr korrigieren

    § 312i Abs. 1 Satz 1 Nr. 1 BGB · Es müssen angemessene Mittel zur Verfügung stehen, Eingabefehler vor Abgabe der Bestellung zu erkennen und zu berichtigen. Fehlen sie, ist der Vertragsschluss angreifbar.

    Was dann zu tun ist: Baue vor dem Bestellknopf eine Übersichtsseite ein, auf der Menge, Anschrift und Zahlungsart noch änderbar sind.

    Braucht den Fakt F-72c · mindestens Konfidenz „sicher“ · 3 Kalibrierfälle

  • RW-EC-011gering

    Beim Bestellen kann niemand die Vertragsbedingungen speichern

    § 312i Abs. 1 Satz 1 Nr. 4 BGB · Die Vertragsbestimmungen müssen beim Vertragsschluss abrufbar und in wiedergabefähiger Form speicherbar sein. Ein Text, den man nur online lesen kann, genügt dem nicht.

    Was dann zu tun ist: Biete die Bedingungen im Bestellvorgang als Datei zum Herunterladen an und lege sie der Bestätigungsmail bei.

    Braucht den Fakt F-72d · mindestens Konfidenz „sicher“ · 3 Kalibrierfälle

  • RW-PA-001mittel

    Bei deinen Preisen steht nicht, dass die Umsatzsteuer drin ist

    § 3 Abs. 1, § 6 Abs. 1 PAngV · Gegenüber Verbrauchern ist der Gesamtpreis einschließlich Umsatzsteuer anzugeben. Der Verstoß ist der am leichtesten nachweisbare des ganzen Handelsteils. Ein Bildschirmfoto genügt.

    Was dann zu tun ist: Schreibe an jeden Preis „inkl. MwSt.“, oder, als Kleinunternehmer, den Hinweis nach § 19 UStG.

    Braucht den Fakt F-73a · mindestens Konfidenz „sicher“ · 3 Kalibrierfälle

  • RW-PA-002mittel

    Zu den Versandkosten steht nichts

    § 6 Abs. 1 PAngV · Ob und in welcher Höhe Versandkosten anfallen, muss vor dem Kauf erkennbar sein, auch, dass es keine gibt.

    Was dann zu tun ist: Nenne die Versandkosten am Preis oder verlinke eine Versandkostenseite von dort. „Kostenloser Versand“ ist ebenfalls eine Angabe.

    Braucht den Fakt F-73b · mindestens Konfidenz „sicher“ · 3 Kalibrierfälle

  • RW-PA-003geringEntwurf: wird noch nicht angewendet

    Bei Ware nach Gewicht oder Volumen fehlt der Grundpreis

    § 4 PAngV ‹K› · Bei Ware, die nach Menge angeboten wird, ist neben dem Gesamtpreis der Preis je Mengeneinheit anzugeben, etwa je Kilogramm oder je Liter.

    Was dann zu tun ist: Ergänze am Produkt den Grundpreis, zum Beispiel „12,90 € (25,80 €/kg)“.

    Braucht den Fakt F-73c · mindestens Konfidenz „sicher“ · 3 Kalibrierfälle

  • RW-PA-004mittel

    Beim Streichpreis fehlt der niedrigste Preis der letzten 30 Tage

    § 11 Abs. 1 PAngV · Wer mit einer Preisermäßigung wirbt, muss den niedrigsten Gesamtpreis der letzten dreißig Tage angeben. Ein erfundener Streichpreis ist zugleich eine irreführende geschäftliche Handlung.

    Was dann zu tun ist: Führe je Produkt eine Preishistorie und zeige beim Rabatt den niedrigsten Preis der letzten dreißig Tage als Bezugspunkt.

    Braucht den Fakt F-73g · mindestens Konfidenz „sicher“ · 4 Kalibrierfälle

  • RW-PA-005gering

    Wann geliefert oder bereitgestellt wird, steht nirgends

    Art. 246a § 1 Abs. 1 Satz 1 Nr. 7 EGBGB · Der Termin, bis zu dem geliefert oder bereitgestellt wird, gehört zu den vorvertraglichen Pflichtangaben. Fehlt er, ist die Information unvollständig.

    Was dann zu tun ist: Nenne am Produkt eine Lieferzeit („2–4 Werktage“) oder bei digitalen Inhalten den Bereitstellungszeitpunkt („sofort nach Zahlungseingang“).

    Braucht den Fakt F-73d · mindestens Konfidenz „sicher“ · 3 Kalibrierfälle

  • RW-KD-001mittel

    Der Kündigungsknopf führt nicht auf eine Bestätigungsseite

    § 312k Abs. 2 Satz 3, Abs. 3 BGB · Der Kündigungsknopf muss auf eine Bestätigungsseite führen, auf der die Kündigung mit einer eindeutig beschrifteten Schaltfläche abgeschickt wird. Fehlt sie, gilt dasselbe wie bei einer fehlenden Schaltfläche: Der Vertrag ist jederzeit fristlos kündbar.

    Was dann zu tun ist: Führe vom Kündigungsknopf auf eine eigene Seite mit Feldern für Vertrag und Kündigungszeitpunkt und einer Schaltfläche „Jetzt kündigen“, und bestätige die Kündigung anschließend in Textform.

    Braucht die Fakten F-74, F-74b · mindestens Konfidenz „wahrscheinlich“ · 3 Kalibrierfälle

  • RW-DS-003mittel

    In deiner Datenschutzerklärung steht nicht, wer für die Daten verantwortlich ist

    Art. 13 Abs. 1 lit. a DSGVO · Ohne benannten Verantwortlichen weiß niemand, an wen sich eine Auskunft oder eine Beschwerde richtet. Der Punkt ist abmahnfähig.

    Was dann zu tun ist: Nenne am Anfang der Erklärung Name, Anschrift und E-Mail der Stelle, die über die Verarbeitung entscheidet, in aller Regel dieselbe wie im Impressum.

    Braucht die Fakten F-24, F-25v · mindestens Konfidenz „sicher“ · 3 Kalibrierfälle

  • RW-DS-004hoch

    Deine Datenschutzerklärung sagt nicht, warum du die Daten verarbeiten darfst

    Art. 13 Abs. 1 lit. c, Art. 6 Abs. 1 DSGVO · Ohne genannte Rechtsgrundlage ist die Information unvollständig. Jede Verarbeitung braucht eine, und welche es ist, muss die Erklärung sagen.

    Was dann zu tun ist: Ordne jeder Verarbeitung ihren Zweck und ihre Grundlage zu: Vertrag, Einwilligung oder berechtigtes Interesse, jeweils mit der Fundstelle in Art. 6 Abs. 1.

    Braucht die Fakten F-24, F-25g · mindestens Konfidenz „sicher“ · 3 Kalibrierfälle

  • RW-DS-005mittel

    Du sagst nicht, wer die Daten außer dir noch bekommt

    Art. 13 Abs. 1 lit. e DSGVO · Empfänger oder wenigstens ihre Kategorien sind zu nennen. Bei einem vibe-gecodeten Produkt sind das mindestens Hosting, Datenbank und Mailversand.

    Was dann zu tun ist: Ergänze einen Abschnitt „Empfänger“ und nenne dort jeden Dienst, der Daten für dich verarbeitet, samt Zweck.

    Braucht die Fakten F-24, F-25e · mindestens Konfidenz „sicher“ · 3 Kalibrierfälle

  • RW-DS-006mittel

    Es steht nicht drin, wie lange du die Daten behältst

    Art. 13 Abs. 2 lit. a DSGVO · Zu nennen ist die Speicherdauer oder wenigstens, woran sie sich bemisst. Fehlt beides, ist die Information unvollständig.

    Was dann zu tun ist: Nenne je Verarbeitung eine Frist oder ein Kriterium; „bis zur Löschung des Kontos“ ist eines, „so lange wie nötig“ allein nicht.

    Braucht die Fakten F-24, F-25s · mindestens Konfidenz „sicher“ · 3 Kalibrierfälle

  • RW-DS-007gering

    Der Hinweis auf die Beschwerde bei der Aufsichtsbehörde fehlt

    Art. 13 Abs. 2 lit. d, Art. 77 DSGVO · Jede betroffene Person darf sich bei einer Aufsichtsbehörde beschweren, und die Erklärung muss darauf hinweisen.

    Was dann zu tun ist: Ein Satz genügt: der Hinweis auf das Beschwerderecht und auf die für dich zuständige Landesbehörde.

    Braucht die Fakten F-24, F-25b · mindestens Konfidenz „sicher“ · 3 Kalibrierfälle

  • RW-DS-008mittel

    Es steht nicht drin, dass man eine Einwilligung zurücknehmen kann

    Art. 7 Abs. 3, Art. 13 Abs. 2 lit. c DSGVO · Der Widerruf muss so einfach sein wie die Einwilligung, und darüber ist vor der Einwilligung zu informieren.

    Was dann zu tun ist: Ergänze bei jeder Einwilligung den Hinweis auf den Widerruf und nenne den Weg dorthin, dieselbe Schaltfläche, die die Einwilligung gesetzt hat.

    Braucht die Fakten F-24, F-25w · mindestens Konfidenz „sicher“ · 3 Kalibrierfälle

  • RW-DS-009mittel

    Deine Daten gehen ins Ausland, deine Erklärung sagt nichts dazu

    Art. 13 Abs. 1 lit. f, Art. 44 ff. DSGVO · Bei einer Übermittlung in ein Drittland sind das Land, die Garantie und der Weg zu ihrer Kopie zu nennen.

    Was dann zu tun ist: Ergänze einen Abschnitt „Übermittlung in Drittländer“ mit dem Dienst, dem Land und der Grundlage: Angemessenheitsbeschluss, Standardvertragsklauseln oder Zertifizierung.

    Braucht die Fakten F-43, F-25d · mindestens Konfidenz „wahrscheinlich“ · 3 Kalibrierfälle

  • RW-DS-010mittel

    Dein Produkt entscheidet automatisch über Menschen, ohne es zu sagen

    Art. 13 Abs. 2 lit. f, Art. 22 DSGVO · Wer automatisiert über Menschen entscheidet, muss über die Logik und die Tragweite informieren, und die Entscheidung auf Verlangen von einem Menschen überprüfen lassen.

    Was dann zu tun ist: Ergänze einen Abschnitt zu automatisierten Entscheidungen: was bewertet wird, wonach, mit welcher Folge, und wie man eine Überprüfung verlangt.

    Braucht den Fakt F-25p · mindestens Konfidenz „wahrscheinlich“ · 3 Kalibrierfälle

  • RW-DS-011mittel

    Deine Seite ruft Dienste auf, die in deiner Erklärung nicht vorkommen

    Art. 13 Abs. 1 lit. e DSGVO · Ein Dienst, der beim Aufruf deiner Seite Daten bekommt und in der Erklärung nicht steht, ist eine unvollständige Information, und der am leichtesten nachweisbare Mangel überhaupt.

    Was dann zu tun ist: Trage die gemessenen Dienste nach oder nimm sie aus der Seite heraus.

    Braucht die Fakten F-24, F-26 · mindestens Konfidenz „wahrscheinlich“ · 3 Kalibrierfälle

  • RW-DS-012mittel

    Dein Formular sammelt Daten, ohne zu sagen, was damit passiert

    Art. 12 Abs. 1, Art. 13 Abs. 1 DSGVO · Die Information ist „zum Zeitpunkt der Erhebung“ zu geben, also am Formular, nicht irgendwo auf der Seite.

    Was dann zu tun ist: Setze unter das Formular einen Satz mit Verweis auf die Datenschutzerklärung. Ein Pflichthäkchen ist dafür ausdrücklich nicht nötig: Für die Bearbeitung einer Anfrage braucht es keine Einwilligung.

    Braucht den Fakt F-45h · mindestens Konfidenz „sicher“ · 3 Kalibrierfälle

  • RW-DS-013hochEntwurf: wird noch nicht angewendet

    Für deine sensiblen Daten fehlt die Risikoabschätzung

    Art. 9, Art. 35 Abs. 3 lit. b DSGVO ‹K› · Bei umfangreicher Verarbeitung besonderer Kategorien ist die Folgenabschätzung vor dem Beginn durchzuführen. Sie ist Voraussetzung dafür, dass die Verarbeitung überhaupt zulässig ist.

    Was dann zu tun ist: Beschreibe die Verarbeitung, ihre Notwendigkeit und die Risiken für die Betroffenen und halte die Maßnahmen dagegen fest. Zwei Seiten genügen. Es ist ein Dokument, kein Werkzeug.

    Braucht den Fakt F-46d · mindestens Konfidenz „wahrscheinlich“ · 3 Kalibrierfälle

  • RW-DS-014hochEntwurf: wird noch nicht angewendet

    Kinder können dein Produkt nutzen, ohne dass die Eltern zustimmen

    Art. 8 DSGVO ‹K› · Ohne die Zustimmung der Eltern fehlt bei jüngeren Nutzern die Grundlage für die gesamte Verarbeitung ihrer Daten.

    Was dann zu tun ist: Hole die Zustimmung ein und mach sie nachweisbar, oder richte das Angebot ausdrücklich an Erwachsene und prüfe das Alter.

    Braucht den Fakt F-47e · mindestens Konfidenz „wahrscheinlich“ · 3 Kalibrierfälle

  • RW-DS-015hoch

    Wenn jemand sein Konto löscht, bleiben die Daten liegen

    Art. 17, Art. 5 Abs. 1 lit. e DSGVO · Auf Verlangen ist zu löschen, und ohne Zweck ist auch ohne Verlangen zu löschen. Ein Datensatz, der nur als gelöscht markiert ist, ist nicht gelöscht.

    Was dann zu tun ist: Lege fest, was beim Löschen eines Kontos geschieht: welche Zeilen verschwinden, welche anonymisiert werden und was aus den Sicherungen wird.

    Braucht den Fakt F-53 · mindestens Konfidenz „sicher“ · 3 Kalibrierfälle

  • RW-DS-016hoch

    In deinem Projektarchiv liegen echte Personendaten

    Art. 5 Abs. 1 lit. c und f, Art. 32 DSGVO · Daten in einer Datei, die mit dem Projekt weitergereicht wird, verlassen jede Zugriffskontrolle. Stammen sie aus fremder Quelle, kommt die Informationspflicht nach Art. 14 DSGVO dazu.

    Was dann zu tun ist: Ersetze den Bestand durch erfundene Testdaten und nimm die Datei aus der Versionsgeschichte. Sie bleibt sonst dort, auch wenn du sie löschst.

    Braucht den Fakt F-54 · mindestens Konfidenz „wahrscheinlich“ · 2 Kalibrierfälle

  • RW-DS-025mittelim Review: wird noch nicht angewendet

    Die Datenschutzerklärung ist nicht von jeder geprüften Unterseite erreichbar

    Art. 12, 13 DSGVO ‹K› · Transparenzinformationen müssen leicht zugänglich sein. Ein nur auf einzelnen Seiten vorhandener Link kann diese Zugänglichkeit verfehlen.

    Was dann zu tun ist: Nimm den Link zur Datenschutzerklärung in das gemeinsame Seitenlayout beziehungsweise den Footer aller öffentlichen Seiten auf.

    Braucht den Fakt F-113 · mindestens Konfidenz „sicher“ · 2 Kalibrierfälle

  • RW-DS-026mittelim Review: wird noch nicht angewendet

    Google Fonts werden im Browser von Google geladen

    Art. 6 Abs. 1 DSGVO, § 25 TDDDG ‹K› · Beim externen Abruf erhält der Anbieter mindestens Verbindungsdaten. Ob dafür eine tragfähige Rechtsgrundlage besteht, ist gesondert zu belegen.

    Was dann zu tun ist: Hoste die verwendeten Schriftdateien selbst, entferne externe CSS-Imports und prüfe im kalten Browserlauf, dass kein Request an fonts.googleapis.com oder fonts.gstatic.com mehr entsteht.

    Braucht den Fakt F-114 · mindestens Konfidenz „sicher“ · 2 Kalibrierfälle

  • RW-DS-027hochim Review: wird noch nicht angewendet

    Eine YouTube-Einbettung verbindet sich schon vor einer Einwilligung

    Art. 6 Abs. 1, Art. 44 ff. DSGVO, § 25 TDDDG ‹K› · Der echte Browser hat die Verbindung ohne vorherige Zustimmung aufgebaut. Damit können Verbindungsdaten an einen externen Empfänger gelangen.

    Was dann zu tun ist: Lade das Video erst nach einer aktiven Auswahl, verwende eine datenschutzfreundliche Vorschau und prüfe auch youtube-nocookie.com im Netzwerkmitschnitt.

    Braucht den Fakt F-115 · mindestens Konfidenz „sicher“ · 2 Kalibrierfälle

  • RW-CO-003hochstillgelegt: wird nicht mehr angewendet

    Analytics wird auf mindestens einer Unterseite vor Einwilligung geladen

    § 25 Abs. 1 TDDDG, Art. 6 Abs. 1 DSGVO ‹K› · Der Deep-Crawl hat einen tatsächlichen Request an Google Analytics oder den Google Tag Manager vor einer Zustimmung gemessen.

    Was dann zu tun ist: Blockiere Analytics und Tag Manager technisch bis zur Einwilligung und wiederhole den Ablehnen- sowie den Unterseitenlauf.

    Braucht den Fakt F-116 · mindestens Konfidenz „sicher“ · 2 Kalibrierfälle

  • RW-CO-004hochstillgelegt: wird nicht mehr angewendet

    Marketing- oder Aufzeichnungstracker starten auf einer Unterseite vor Einwilligung

    § 25 Abs. 1 TDDDG, Art. 6 Abs. 1 DSGVO ‹K› · Der Browser hat Meta Pixel, Hotjar oder Microsoft Clarity ohne vorherige Zustimmung tatsächlich kontaktiert.

    Was dann zu tun ist: Verschiebe die Initialisierung in den bestätigten Consent-Zweig und prüfe anschließend den kalten Crawl und den Ablehnen-Lauf erneut.

    Braucht den Fakt F-117 · mindestens Konfidenz „sicher“ · 2 Kalibrierfälle

  • RW-DS-018hoch

    Für die Dienste, die deine Daten verarbeiten, fehlt der Vertrag

    Art. 28 Abs. 3 DSGVO · Ohne Auftragsverarbeitungsvertrag ist die Weitergabe an einen Dienstleister rechtswidrig, unabhängig davon, wie sicher der Dienst technisch arbeitet.

    Was dann zu tun ist: Alle großen Anbieter halten den Vertrag als Formular bereit; er ist meist mit zwei Klicks im Konto abzuschließen. Führe dazu eine Liste, welcher Dienst welche Daten bekommt.

    Braucht den Fakt F-44 · mindestens Konfidenz „sicher“ · 3 Kalibrierfälle

  • RW-DS-019mittel

    Außenstehende kommen an die echten Daten deiner Nutzer

    Art. 28, Art. 32 Abs. 4 DSGVO · Wer von außen an die Produktivdaten kommt, ist Auftragsverarbeiter. Ohne Vertrag und ohne Weisungsbindung ist der Zugriff ohne Grundlage.

    Was dann zu tun ist: Schließe für jede externe Stelle den Vertrag ab, gib getrennte Zugänge statt eines gemeinsamen Passworts und entziehe sie, wenn die Zusammenarbeit endet.

    Braucht die Fakten F-95, F-44 · mindestens Konfidenz „sicher“ · 3 Kalibrierfälle

  • RW-DS-020hoch

    Daten gehen außerhalb der EU, ohne dass eine Grundlage dafür vorliegt

    Art. 44, Art. 46 DSGVO · Eine Übermittlung in ein Drittland ist ohne Angemessenheitsbeschluss, ohne Standardvertragsklauseln und ohne andere Garantie unzulässig.

    Was dann zu tun ist: Prüfe je Dienst, ob eine EU-Region wählbar ist. Ist sie es nicht, schließe die Standardvertragsklauseln ab oder weise die Zertifizierung nach.

    Braucht die Fakten F-43, F-43g · mindestens Konfidenz „wahrscheinlich“ · 3 Kalibrierfälle

  • RW-DS-021mittel

    Deine Datenbank steht außerhalb Europas

    Art. 44 ff. DSGVO · Liegt die Datenbank außerhalb des EWR, ist jede Speicherung eine Übermittlung in ein Drittland und braucht eine eigene Grundlage.

    Was dann zu tun ist: Lege das Projekt in einer EU-Region neu an und ziehe die Daten um. Bei den Baukasten-Backends ist die Region nachträglich nicht umzustellen. Sonst bleiben die Standardvertragsklauseln.

    Braucht die Fakten F-42, F-43g · mindestens Konfidenz „wahrscheinlich“ · 4 Kalibrierfälle

  • RW-DS-022mittelEntwurf: wird noch nicht angewendet

    Es gibt keine Übersicht, welche Daten du wofür verarbeitest

    Art. 30 DSGVO ‹K› · Das Verzeichnis ist das erste, was eine Aufsichtsbehörde anfordert. Wer es nicht vorlegen kann, hat den Prüfungsauftakt schon verloren.

    Was dann zu tun ist: Eine Tabelle genügt: Verarbeitung, Zweck, Rechtsgrundlage, Datenarten, Empfänger, Löschfrist. Die Aufsichtsbehörden stellen Vorlagen bereit.

    Braucht den Fakt F-96 · mindestens Konfidenz „sicher“ · 3 Kalibrierfälle

  • RW-DS-023mittelEntwurf: wird noch nicht angewendet

    Du brauchst vielleicht eine Datenschutzbeauftragte

    Art. 37 DSGVO, § 38 Abs. 1 BDSG ‹K› · Besteht die Pflicht und ist niemand benannt, ist das bußgeldbewehrt, und die Benennung ist zusätzlich der Aufsichtsbehörde zu melden.

    Was dann zu tun ist: Benenne eine Person und melde sie der Aufsichtsbehörde. Das kann auch eine externe Person sein; die Kontaktdaten gehören in die Datenschutzerklärung.

    Braucht den Fakt F-97 · mindestens Konfidenz „sicher“ · 5 Kalibrierfälle

  • RW-DS-024mittel

    Von den Daten deiner Nutzer gibt es keine geprüfte Sicherung

    Art. 32 Abs. 1 lit. c und d DSGVO · Die Verfügbarkeit der Daten ist Teil der Sicherheit der Verarbeitung. Ein Datenverlust ist eine Verletzung des Schutzes personenbezogener Daten und kann nach Art. 33 binnen 72 Stunden meldepflichtig sein.

    Was dann zu tun ist: Schalte die tägliche Sicherung im Anbieterkonto ein und spiele sie einmal in ein Testprojekt zurück. Eine nie geprüfte Sicherung ist kein Nachweis.

    Braucht den Fakt F-106 · mindestens Konfidenz „sicher“ · 3 Kalibrierfälle

  • RW-DSA-001hoch

    Niemand kann dir melden, dass ein Inhalt rechtswidrig ist

    Art. 16 DSA (VO (EU) 2022/2065) · Art. 16 DSA verlangt ein leicht zugängliches, elektronisches Meldeverfahren für rechtswidrige Inhalte. Ohne dieses Verfahren verlierst du zugleich die Haftungsfreistellung für fremde Inhalte (Art. 6 DSA): Du haftest dann für das, was andere bei dir schreiben, wie für Eigenes.

    Was dann zu tun ist: Ein Meldeweg an jedem nutzergenerierten Inhalt: kein Kontaktformular im Seitenfuß, sondern eine Schaltfläche dort, wo der Inhalt steht. Sie nimmt Fundstelle, Begründung und Kontakt des Meldenden auf und bestätigt den Eingang.

    Braucht den Fakt F-100 · mindestens Konfidenz „sicher“ · 5 Kalibrierfälle

  • RW-DSA-002mittelEntwurf: wird noch nicht angewendet

    Auf eine Meldung folgt bei dir nichts Festes

    Art. 16 Abs. 5, Art. 17 DSA ‹K› · Wer eine Meldung erhält, muss unverzüglich entscheiden, die Entscheidung mitteilen (Art. 16 Abs. 5 DSA) und sie begründen (Art. 17 DSA). ‹K› Welche Begründungstiefe ein Angebot dieser Größe schuldet, ist anwaltlich zu klären.

    Was dann zu tun ist: Lege fest, wer Meldungen ansieht, in welcher Frist entschieden wird und wie Meldender und Verfasser die Entscheidung samt Begründung erfahren. Eine Absprache im Team genügt nicht. Das Verfahren muss aufschreibbar sein.

    Braucht den Fakt F-100b · mindestens Konfidenz „sicher“ · 4 Kalibrierfälle

  • RW-DSA-003mittel

    Es gibt keine benannte Stelle, an die sich Behörden und Nutzer wenden können

    Art. 11, Art. 12 DSA · Art. 11 DSA verlangt eine zentrale Kontaktstelle für die Behörden, Art. 12 DSA eine für die Nutzer. Beide müssen veröffentlicht und leicht auffindbar sein; es darf dieselbe sein.

    Was dann zu tun ist: Nenne auf einer festen Seite, sinnvollerweise im Impressum, eine elektronische Adresse ausdrücklich als Kontaktstelle nach Art. 11 und 12 DSA, samt der Sprachen, in denen du erreichbar bist.

    Braucht die Fakten F-dsa-behoerdenkontakt, F-dsa-nutzerkontakt · mindestens Konfidenz „sicher“ · 4 Kalibrierfälle

  • RW-DSA-004mittelEntwurf: wird noch nicht angewendet

    Wer bei dir gesperrt wird, kann sich nirgends beschweren

    Art. 20 DSA, Ausnahme Art. 19 DSA ‹K› · Art. 20 DSA verlangt von Online-Plattformen ein internes Beschwerdesystem gegen Löschungen und Sperren, mindestens sechs Monate lang zugänglich. ‹K› Art. 19 DSA nimmt Kleinst- und Kleinunternehmen im Sinne der Empfehlung 2003/361/EG aus; genau diese Schwelle wird abgefragt.

    Was dann zu tun ist: Ein Weg, auf dem Betroffene eine Entscheidung anfechten können, mit Bearbeitung durch einen Menschen und einer begründeten Antwort.

    Braucht den Fakt F-100c · mindestens Konfidenz „sicher“ · 5 Kalibrierfälle

  • RW-DSA-005hochEntwurf: wird noch nicht angewendet

    Altersbeschränkte Inhalte, aber jeder kommt hinein

    § 4 Abs. 2, § 5 JMStV ‹K› · Der Jugendmedienschutz-Staatsvertrag verlangt für entwicklungsbeeinträchtigende Angebote wirksame Vorkehrungen und für die schwersten Inhalte eine geschlossene Benutzergruppe. Eine Abfrage, die jeder mit einem Klick übersteht, ist keine. ‹K› Welche Stufe dein Angebot trifft, hängt vom Inhalt ab und ist anwaltlich zu klären.

    Was dann zu tun ist: Prüfe das Alter über ein Verfahren mit Identifizierung: Ausweisprüfung, Bankdaten, Post-Ident oder ein anerkanntes Altersverifikationssystem.

    Braucht den Fakt F-102b · mindestens Konfidenz „sicher“ · 3 Kalibrierfälle

  • RW-DSA-006mittelEntwurf: wird noch nicht angewendet

    Auf deinem Marktplatz weiß niemand, mit wem er den Vertrag schließt

    Art. 30 DSA, Ausnahme Art. 29 DSA ‹K› · Sichtbare Namen, Anschriften und Kontaktdaten der Unternehmer sind Teil der Nachverfolgbarkeit nach Art. 30 DSA. Diese Frage prüft ausschließlich die sichtbaren Kontaktangaben; weitere Erhebungs- und Prüfungspflichten bleiben gesondert zu klären. ‹K› Art. 29 DSA nimmt Kleinst- und Kleinunternehmen grundsätzlich aus.

    Was dann zu tun ist: Zeige Name, Anschrift, Telefonnummer und E-Mail des jeweiligen Unternehmers klar und leicht zugänglich beim Angebot an. Prüfe die weiteren Erhebungs-, Prüfungs- und Anzeigepflichten des Art. 30 DSA gesondert.

    Braucht den Fakt F-101c · mindestens Konfidenz „sicher“ · 6 Kalibrierfälle

  • RW-UWG-001hoch

    Deine Newsletter-Anmeldung wird nicht bestätigt

    § 7 Abs. 1, Abs. 2 Nr. 2 UWG · Werbung per E-Mail ohne vorherige ausdrückliche Einwilligung ist eine unzumutbare Belästigung. Beweisen muss die Einwilligung der Absender. Ohne dokumentierte Bestätigungskette gelingt das praktisch nie. Gerechnet wird pro Empfänger.

    Was dann zu tun ist: Bestätigungsmail mit Einmal-Link: Erst wer sie anklickt, kommt in den Verteiler. Zeitpunkt, IP-Adresse und Bestätigungstext gehören dauerhaft gespeichert. Sie sind im Streitfall der einzige Beweis.

    Braucht den Fakt F-84 · mindestens Konfidenz „sicher“ · 3 Kalibrierfälle

  • RW-UWG-002mittel

    In deinen Werbemails fehlt der Abmeldeweg

    § 7 Abs. 2 Nr. 3 UWG · Eine Werbenachricht, bei der die Identität des Absenders verschleiert wird oder eine Adresse für den Widerspruch fehlt, ist unzulässig, unabhängig davon, ob eine Einwilligung vorliegt.

    Was dann zu tun ist: In jede Werbemail gehören ein Abmeldelink, der ohne Anmeldung und ohne Kosten wirkt, und dieselben Absenderangaben wie im Impressum.

    Braucht den Fakt F-83u · mindestens Konfidenz „sicher“ · 3 Kalibrierfälle

  • RW-UWG-003mittel

    Bezahlte Empfehlungen sind bei dir nicht als Werbung erkennbar

    § 5a Abs. 4 UWG · Wer den kommerziellen Zweck einer geschäftlichen Handlung nicht kenntlich macht, handelt unlauter. In Anspruch genommen wird dabei regelmäßig auch der Auftraggeber, nicht nur der Werbende.

    Was dann zu tun ist: Verpflichte deine Partner vertraglich zur Kennzeichnung im Beitrag selbst: „Werbung“ oder „Anzeige“ am Anfang, nicht im Profiltext und nicht zwischen den Schlagwörtern.

    Braucht den Fakt F-109b · mindestens Konfidenz „sicher“ · 3 Kalibrierfälle

  • RW-UWG-004mittel

    Bei deinen Bewertungen steht nicht, ob sie echt sind

    § 5b Abs. 3 UWG · Zeigt ein Unternehmer Bewertungen, ist die Angabe, ob und wie er ihre Echtheit sicherstellt, eine wesentliche Information. Fehlt sie, ist die Darstellung irreführend.

    Was dann zu tun ist: Ein Satz neben der Bewertungsliste, der sagt, ob und wie du prüfst, dass die Bewertenden das Angebot wirklich genutzt haben. Verlangt ist die Auskunft, nicht die Prüfung selbst.

    Braucht den Fakt F-83c · mindestens Konfidenz „sicher“ · 3 Kalibrierfälle

  • RW-FO-001mittel

    An deinem Formular steht nicht, wozu du die Daten verwendest

    Art. 13 Abs. 1, Art. 12 Abs. 1 DSGVO · Die Information ist zum Zeitpunkt der Erhebung zu erteilen, also am Formular, nicht erst auf einer Unterseite. Fehlt sie, ist die Verarbeitung formell rechtswidrig.

    Was dann zu tun ist: Ein Satz unter dem Formular: wozu du die Daten verwendest, wie lange du sie speicherst, und ein Link auf die Datenschutzerklärung.

    Braucht den Fakt F-84b · mindestens Konfidenz „sicher“ · 4 Kalibrierfälle

  • RW-FO-002mittel

    Das Einwilligungshäkchen ist bei dir schon gesetzt

    Art. 4 Nr. 11, Art. 7 Abs. 1 DSGVO · Eine Einwilligung verlangt eine eindeutige bestätigende Handlung. Ein vorangekreuztes Kästchen ist keine; die darauf gestützte Verarbeitung hat damit keine Rechtsgrundlage.

    Was dann zu tun ist: Nimm die Vorbelegung heraus. Das Kästchen muss leer sein, und ohne Klick darf nichts passieren.

    Braucht den Fakt F-84d · mindestens Konfidenz „sicher“ · 2 Kalibrierfälle

  • RW-FO-003mittelEntwurf: wird noch nicht angewendet

    Bei der Registrierung stimmt niemand deinen Bedingungen zu

    § 305 Abs. 2 BGB ‹K› · AGB werden nur Vertragsinhalt, wenn ausdrücklich auf sie hingewiesen wird und der andere Teil mit ihrer Geltung einverstanden ist. Ohne Einbeziehung gilt allein das Gesetz, samt der Haftung, die deine Bedingungen begrenzen sollten. ‹K› Ob deine Registrierung überhaupt einen Vertragsschluss darstellt, ist anwaltlich zu klären.

    Was dann zu tun ist: Ein Kästchen vor dem Absenden, das nicht vorbelegt ist, mit Verweis auf die Bedingungen, und die Zustimmung samt Fassung und Zeitpunkt gespeichert.

    Braucht den Fakt F-84c · mindestens Konfidenz „sicher“ · 4 Kalibrierfälle

  • RW-FO-004mittelEntwurf: wird noch nicht angewendet

    Dein Formular schickt die Eingaben an einen fremden Dienst

    Art. 28 Abs. 3, Art. 13 Abs. 1 lit. e DSGVO ‹K› · Das Ziel des Formulars ist gemessen, nicht vermutet: Die Eingaben gehen an einen Dritten. Dafür braucht es einen Auftragsverarbeitungsvertrag, und der Empfänger gehört in die Datenschutzerklärung. ‹K› Ob ein Vertrag vorliegt, können wir nicht sehen. Das hier ist ein Prüfauftrag, kein Vorwurf.

    Was dann zu tun ist: Schließe mit dem Dienst einen Auftragsverarbeitungsvertrag, nenne ihn in der Datenschutzerklärung als Empfänger, oder hole den Versand auf den eigenen Server zurück.

    Braucht den Fakt F-84e · mindestens Konfidenz „sicher“ · 3 Kalibrierfälle

  • RW-AR-001mittel

    Deine Beschäftigten wissen nicht, was das Werkzeug über sie speichert

    Art. 13 DSGVO, § 26 BDSG · Die Informationspflicht gilt gegenüber Beschäftigten genauso wie gegenüber Kunden, und Beschäftigtendaten stehen zusätzlich unter den besonderen Anforderungen des § 26 BDSG. Fehlt die Information, ist die Verarbeitung formell rechtswidrig; Betroffene können Auskunft und Löschung verlangen.

    Was dann zu tun ist: Ein Merkblatt für die Belegschaft: welche Daten das Werkzeug erfasst, wozu, wie lange, wer sie sieht, und der Hinweis auf die Rechte aus Art. 15 bis 21 DSGVO.

    Braucht den Fakt F-48b · mindestens Konfidenz „sicher“ · 3 Kalibrierfälle

  • RW-AR-002hoch

    Das Werkzeug kann Leistung messen, der Betriebsrat hat nie zugestimmt

    § 87 Abs. 1 Nr. 6 BetrVG · Technische Einrichtungen, die zur Überwachung von Verhalten oder Leistung GEEIGNET sind, unterliegen der Mitbestimmung. Auf die Absicht kommt es nicht an. Ohne Beteiligung kann der Betriebsrat die Nutzung untersagen lassen, auch nachträglich; erhobene Daten können im Verfahren unverwertbar sein.

    Was dann zu tun ist: Beteilige den Betriebsrat vor dem weiteren Einsatz und halte das Ergebnis in einer Betriebsvereinbarung fest: welche Daten erhoben werden, wer sie sieht, wann sie gelöscht werden und was ausdrücklich nicht ausgewertet wird.

    Braucht die Fakten F-104, F-103b · mindestens Konfidenz „sicher“ · 3 Kalibrierfälle

  • RW-AR-003hochEntwurf: wird noch nicht angewendet

    Das Werkzeug sortiert Bewerbungen vor

    Art. 22 DSGVO, Anhang III Nr. 4 AI Act ‹K› · Eine Vorauswahl von Bewerbungen berührt Art. 22 DSGVO, und die KI-Verordnung führt Systeme für die Einstellung und Auswahl von Personen in Anhang III als Hochrisiko. ‹K› Ob dein Fall darunter fällt und welche Pflichten ab wann greifen, ist anwaltlich zu klären. Aus einer Selbstauskunft folgt das nicht.

    Was dann zu tun ist: Stelle sicher, dass die Entscheidung ein Mensch trifft, der die Vorauswahl überstimmen kann, dokumentiere die Kriterien und informiere die Bewerber über die eingesetzte Logik.

    Braucht den Fakt F-48c · mindestens Konfidenz „sicher“ · 3 Kalibrierfälle

  • RW-UR-001hoch

    Du nutzt fremdes Material ohne geklärte Rechte

    § 97 UrhG · Der Unterlassungsanspruch besteht ohne Verschulden; „wir wussten nicht, dass das Bild geschützt ist“ hilft nicht. Dazu kommen Schadensersatz nach der Lizenzanalogie und die Kosten der Abmahnung.

    Was dann zu tun ist: Für jedes fremde Bild, jeden Text und jede Melodie die Lizenz sichern und ablegen: Quelle, Lizenztyp, Datum, erlaubter Umfang. Was sich nicht belegen lässt, kommt heraus.

    Braucht den Fakt F-89n · mindestens Konfidenz „sicher“ · 3 Kalibrierfälle

  • RW-UR-002mittelEntwurf: wird noch nicht angewendet

    Eine Copyleft-Bibliothek steckt in deinem geschlossenen Produkt

    § 97 UrhG i. V. m. den Bedingungen der GPL/AGPL ‹K› · Copyleft-Lizenzen räumen das Nutzungsrecht nur unter Bedingungen ein. Wer sie verletzt, nutzt ohne Nutzungsrecht, mit denselben Folgen wie bei jedem anderen Urheberrechtsverstoß. ‹K› Ob deine Einbindung eine abgeleitete Bearbeitung ist, hängt an der Art der Verlinkung und ist anwaltlich zu klären.

    Was dann zu tun ist: Prüfe je Abhängigkeit, ob eine Ausnahme greift, tausche die Bibliothek aus, oder veröffentliche den eigenen Quelltext unter derselben Lizenz.

    Braucht den Fakt F-89o · mindestens Konfidenz „sicher“ · 3 Kalibrierfälle

  • RW-UR-003mittelEntwurf: wird noch nicht angewendet

    Woher deine Trainingsdaten stammen, ist ungeklärt

    § 44b Abs. 3 UrhG ‹K› · Text und Data Mining ist nach § 44b UrhG nur zulässig, solange der Rechteinhaber keinen maschinenlesbaren Nutzungsvorbehalt erklärt hat. ‹K› Ob dein Vorgehen davon gedeckt ist und ob dich daneben Pflichten aus der KI-Verordnung treffen, ist anwaltlich zu klären.

    Was dann zu tun ist: Halte je Datensatz fest, woher er stammt, unter welcher Lizenz er steht und ob ein Nutzungsvorbehalt geprüft wurde. Personenbezogene Trainingsdaten brauchen zusätzlich eine eigene Rechtsgrundlage.

    Braucht den Fakt F-90c · mindestens Konfidenz „sicher“ · 3 Kalibrierfälle

  • RW-MD-001mittel

    Auf deiner Seite sind Menschen zu sehen, die nicht zugestimmt haben

    § 22 KUG, allgemeines Persönlichkeitsrecht · Bildnisse dürfen nur mit Einwilligung des Abgebildeten verbreitet werden; für die nachgebildete Stimme gilt dasselbe über das allgemeine Persönlichkeitsrecht. Der Anspruch steht jeder betroffenen Person einzeln zu. Das Teamfoto mit dem ausgeschiedenen Mitarbeiter genügt.

    Was dann zu tun ist: Hole für jede erkennbare Person eine schriftliche Einwilligung ein, die Zweck und Reichweite nennt, und lege sie ab. Wo das nicht geht: Aufnahme entfernen oder die Person unkenntlich machen.

    Braucht den Fakt F-88e · mindestens Konfidenz „sicher“ · 3 Kalibrierfälle

Weiter

Wie eine Regel zu einem Befund wird, steht unter So funktioniert's. Was dabei deinen Rechner verlässt, steht unter Sicherheit.