{
    "schema": "https://saferpage.de/schemas/operator-fix-guide-package.v1",
    "generated_at": "2026-06-13T13:10:43+00:00",
    "domain": "bvkj.de",
    "available": true,
    "scan": {
        "id": "dd19eaaa-b0cd-4631-9931-10ad5e1514c5",
        "checked_at": "2026-06-10 00:25:07.816616+02"
    },
    "summary": "bvkj.de: 7 priorisierte Betreiber-Guide(s) aus 23 Befund(en).",
    "metrics": {
        "issue_count": 23,
        "guide_count": 7,
        "high_priority_count": 12,
        "medium_priority_count": 4,
        "tracker_task_count": 1,
        "remediation_ticket_count": 24,
        "remediation_ticket_fingerprint_count": 24,
        "remediation_ticket_duplicate_count": 0,
        "high_ticket_count": 12,
        "acceptance_count": 21,
        "source_count": 15,
        "platform_playbook_count": 2,
        "platform_playbook_step_count": 8,
        "platform_playbook_acceptance_count": 6,
        "platform_playbook_boundary_count": 2,
        "platform_playbook_evidence_url_count": 2,
        "quality_review_row_count": 6,
        "quality_review_acceptance_count": 6,
        "quality_review_boundary_count": 6,
        "quality_review_evidence_url_count": 6,
        "quality_review_guide_url_count": 6,
        "quality_review_form_count": 4,
        "quality_review_form_page_count": 4,
        "evidence_first_measured_count": 4,
        "evidence_first_operator_context_count": 4,
        "evidence_first_do_not_claim_count": 4
    },
    "guide_streams": [
        {
            "guide_slug": "sichtbare-versionen-und-cves-beheben",
            "guide_url": "https://saferpage.de/guides/sichtbare-versionen-und-cves-beheben",
            "title": "Sichtbare Versionen und CVE-Hinweise beheben",
            "intro": "Sichtbare veraltete Versionen können ein Risiko sein und sollten gegen Herstellerhinweise geprüft werden.",
            "priority": "hoch",
            "impact_score": 86,
            "phase": "0-7 Tage",
            "area": "Vulnerability Hygiene",
            "owner": "IT/Security",
            "effort": "mittel",
            "issue_count": 1,
            "issues": [
                {
                    "id": "unsupported_technology_version",
                    "area": "vulnerability",
                    "title": "PHP-Version ist nicht mehr upstream unterstuetzt",
                    "priority": "hoch",
                    "impact_score": 86,
                    "evidence": "",
                    "operator_action": "PHP auf eine aktuell unterstuetzte Version migrieren. Upstream-Sicherheitsfixes gibt es laut php.net nur noch fuer PHP 8.2 bis 8.5; alte 7.x/8.0/8.1-Header sind kritisch, sofern kein Distribution-Backport nachweisbar ist.",
                    "owner": "Website-Betrieb/Datenschutz",
                    "guide_slug": "sichtbare-versionen-und-cves-beheben",
                    "guide_url": "https://saferpage.de/guides/sichtbare-versionen-und-cves-beheben",
                    "source": "finding"
                }
            ],
            "guide_steps": [
                "Aktualisieren Sie CMS, Plugins, Themes, Frameworks und JavaScript-Bibliotheken.",
                "Entfernen Sie unnötige Versionshinweise aus Headern und Generator-Meta-Tags.",
                "Prüfen Sie CVE-Hinweise gegen den tatsächlichen Paketstand, besonders bei Distributionen mit Backports."
            ],
            "fix_steps": [
                {
                    "phase": "Befund reproduzieren",
                    "owner": "IT/Security",
                    "action": "SaferPage-Report, betroffene URL, Consent-Zustand und Request-/Cookie-/Header-Evidence sichern.",
                    "evidence": "Scan-ID, Screenshot, Exportzeile, betroffener Guide-Link."
                },
                {
                    "phase": "Ursache beheben",
                    "owner": "IT/Security",
                    "action": "Konfiguration, Tag, Inhalt, Anbieter, Header oder Formular gemäß Guide ändern und Änderung versionieren.",
                    "evidence": "Ticket, Konfigurationsdiff, CMS-/Tag-Manager-Änderung, Freigabe."
                },
                {
                    "phase": "Nutzertext aktualisieren",
                    "owner": "Datenschutz/Content",
                    "action": "Datenschutzhinweis, Cookie-Liste, Anbieterregister oder Trust-Dokumentation an die reale Technik anpassen.",
                    "evidence": "Versionierter Text, Änderungsdatum, Verantwortlicher."
                },
                {
                    "phase": "Re-Test und Abschluss",
                    "owner": "Compliance/IT",
                    "action": "Generator-, Header- und Bibliothekssignale erneut prüfen.",
                    "evidence": "Patchstand, Herstellerhinweis, CVE-Bewertung, Backport-Nachweis."
                }
            ],
            "acceptance": [
                "Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.",
                "Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.",
                "Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe."
            ],
            "evidence_exports": [
                "JSON/CSV/XLSX-Export für Rohbefunde und Audit-Tabellen",
                "ZIP-Nachweispaket mit Screenshot, Evidence Manifest und Guide-Verweisen",
                "Trust Documentation Library für öffentliche, sanitisierte und interne Nachweise"
            ],
            "retest": "Generator-, Header- und Bibliothekssignale erneut prüfen.",
            "sources": [
                {
                    "label": "BSI IT-Grundschutz APP.3.1 Webanwendungen",
                    "url": "https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Grundschutz/IT-GS-Kompendium_Einzel_PDFs_2023/06_APP_Anwendungen/APP_3_1_Webanwendungen_und_Webservices_Edition_2023.pdf?__blob=publicationFile&v=3"
                },
                {
                    "label": "Google Search Central: Security Issues",
                    "url": "https://developers.google.com/search/docs/monitor-debug/security"
                }
            ]
        },
        {
            "guide_slug": "seo-spam-und-cloaking-bereinigen",
            "guide_url": "https://saferpage.de/guides/seo-spam-und-cloaking-bereinigen",
            "title": "SEO-Spam und Cloaking bereinigen",
            "intro": "Versteckte Texte, Doorway-Muster oder abweichende Googlebot-Inhalte wirken unseriös und können auf Kompromittierung hinweisen.",
            "priority": "hoch",
            "impact_score": 86,
            "phase": "0-7 Tage",
            "area": "Trust & Content Integrity",
            "owner": "Webbetrieb/SEO/Security",
            "effort": "hoch",
            "issue_count": 4,
            "issues": [
                {
                    "id": "hidden_text",
                    "area": "seo",
                    "title": "Versteckter Text erkannt",
                    "priority": "hoch",
                    "impact_score": 86,
                    "evidence": "",
                    "operator_action": "Prüfen, ob Text absichtlich vor Nutzern verborgen, aber für Suchmaschinen platziert wird.",
                    "owner": "Website-Betrieb/Datenschutz",
                    "guide_slug": "seo-spam-und-cloaking-bereinigen",
                    "guide_url": "https://saferpage.de/guides/seo-spam-und-cloaking-bereinigen",
                    "source": "finding"
                },
                {
                    "id": "external_canonical",
                    "area": "seo",
                    "title": "Canonical zeigt auf fremde Domain",
                    "priority": "hoch",
                    "impact_score": 86,
                    "evidence": "",
                    "operator_action": "Canonical-Tags sollten nur bewusst auf fremde Domains zeigen; sonst kann Traffic/Ranking umgeleitet werden.",
                    "owner": "Website-Betrieb/Datenschutz",
                    "guide_slug": "seo-spam-und-cloaking-bereinigen",
                    "guide_url": "https://saferpage.de/guides/seo-spam-und-cloaking-bereinigen",
                    "source": "finding"
                },
                {
                    "id": "external_link_spam",
                    "area": "seo",
                    "title": "Sehr viele externe Links erkannt",
                    "priority": "hoch",
                    "impact_score": 86,
                    "evidence": "",
                    "operator_action": "Prüfen, ob die Seite als Linkfarm, Affiliate-Brücke oder Spam-Seite dient.",
                    "owner": "Website-Betrieb/Datenschutz",
                    "guide_slug": "seo-spam-und-cloaking-bereinigen",
                    "guide_url": "https://saferpage.de/guides/seo-spam-und-cloaking-bereinigen",
                    "source": "finding"
                },
                {
                    "id": "module_seo_integrity",
                    "area": "Audit-Modul",
                    "title": "SEO-Integrität & Cloaking",
                    "priority": "hoch",
                    "impact_score": 54,
                    "evidence": "3 SEO-Spam-Hinweis(e), 0 Cloaking-Hinweis(e).",
                    "operator_action": "Versteckte Inhalte, Canonical-Missbrauch und Googlebot-Abweichungen entfernen.",
                    "owner": "Website-Betrieb/Datenschutz",
                    "guide_slug": "seo-spam-und-cloaking-bereinigen",
                    "guide_url": "https://saferpage.de/guides/seo-spam-und-cloaking-bereinigen",
                    "source": "audit_module"
                }
            ],
            "guide_steps": [
                "Entfernen Sie versteckte Linklisten, Keyword-Stuffing und automatisch erzeugte Doorway-Seiten.",
                "Vergleichen Sie normalen Abruf und Googlebot-Abruf auf Weiterleitungen und sichtbare Inhalte.",
                "Prüfen Sie CMS, Themes und Plugins auf Schadcode, wenn solche Muster unerwartet auftauchen."
            ],
            "fix_steps": [
                {
                    "phase": "Befund reproduzieren",
                    "owner": "Webbetrieb/SEO/Security",
                    "action": "SaferPage-Report, betroffene URL, Consent-Zustand und Request-/Cookie-/Header-Evidence sichern.",
                    "evidence": "Scan-ID, Screenshot, Exportzeile, betroffener Guide-Link."
                },
                {
                    "phase": "Ursache beheben",
                    "owner": "Webbetrieb/SEO/Security",
                    "action": "Konfiguration, Tag, Inhalt, Anbieter, Header oder Formular gemäß Guide ändern und Änderung versionieren.",
                    "evidence": "Ticket, Konfigurationsdiff, CMS-/Tag-Manager-Änderung, Freigabe."
                },
                {
                    "phase": "Nutzertext aktualisieren",
                    "owner": "Datenschutz/Content",
                    "action": "Datenschutzhinweis, Cookie-Liste, Anbieterregister oder Trust-Dokumentation an die reale Technik anpassen.",
                    "evidence": "Versionierter Text, Änderungsdatum, Verantwortlicher."
                },
                {
                    "phase": "Re-Test und Abschluss",
                    "owner": "Compliance/IT",
                    "action": "Normaler Browser, SaferPage-Crawler und Suchmaschinenansicht vergleichen.",
                    "evidence": "Bereinigter Code, Malware-/Plugin-Prüfung, Search-Console-Status."
                }
            ],
            "acceptance": [
                "Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.",
                "Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.",
                "Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe."
            ],
            "evidence_exports": [
                "JSON/CSV/XLSX-Export für Rohbefunde und Audit-Tabellen",
                "ZIP-Nachweispaket mit Screenshot, Evidence Manifest und Guide-Verweisen",
                "Trust Documentation Library für öffentliche, sanitisierte und interne Nachweise"
            ],
            "retest": "Normaler Browser, SaferPage-Crawler und Suchmaschinenansicht vergleichen.",
            "sources": [
                {
                    "label": "Google Search Central: Security Issues",
                    "url": "https://developers.google.com/search/docs/monitor-debug/security"
                },
                {
                    "label": "Google Search Central: Page Experience",
                    "url": "https://developers.google.com/search/docs/appearance/page-experience"
                }
            ]
        },
        {
            "guide_slug": "google-dienste-datenschutzfreundlich-einbinden",
            "guide_url": "https://saferpage.de/guides/google-dienste-datenschutzfreundlich-einbinden",
            "title": "Google-Dienste datenschutzfreundlich einbinden",
            "intro": "Google Analytics, Tag Manager, Fonts, Maps, YouTube und reCAPTCHA brauchen im deutschsprachigen Raum eine besonders saubere Prüfung.",
            "priority": "hoch",
            "impact_score": 86,
            "phase": "0-7 Tage",
            "area": "Google-Dienste",
            "owner": "Marketing/IT",
            "effort": "mittel",
            "issue_count": 3,
            "issues": [
                {
                    "id": "google_consent_mode_missing",
                    "area": "privacy",
                    "title": "Google Consent Mode Default nicht erkannt",
                    "priority": "hoch",
                    "impact_score": 86,
                    "evidence": "",
                    "operator_action": "Vor dem ersten Google-Tag Consent-Defaults setzen, typischerweise ad_storage, analytics_storage, ad_user_data und ad_personalization auf denied.",
                    "owner": "Website-Betrieb/Datenschutz",
                    "guide_slug": "google-dienste-datenschutzfreundlich-einbinden",
                    "guide_url": "https://saferpage.de/guides/google-dienste-datenschutzfreundlich-einbinden",
                    "source": "finding"
                },
                {
                    "id": "module_google_third_parties",
                    "area": "Audit-Modul",
                    "title": "Google-Dienste & Drittanbieter",
                    "priority": "mittel",
                    "impact_score": 42,
                    "evidence": "Google-Tags: ja, 0 Google-nahe Domain(s), Consent-Default: nein, Analytics: nein, Werbung: nein, Fonts: nein.",
                    "operator_action": "Google-Dienste einzeln prüfen, Consent Mode sauber setzen und Fonts möglichst lokal ausliefern.",
                    "owner": "Website-Betrieb/Datenschutz",
                    "guide_slug": "google-dienste-datenschutzfreundlich-einbinden",
                    "guide_url": "https://saferpage.de/guides/google-dienste-datenschutzfreundlich-einbinden",
                    "source": "audit_module"
                },
                {
                    "id": "google_consent_gap",
                    "area": "Google Consent Mode und Tags reparieren",
                    "title": "Google-Dienste",
                    "priority": "mittel",
                    "impact_score": 42,
                    "evidence": "Google-Tags und Consent-Mode-Signale wurden aus HTML, Browserkontakten und Tracking-IDs abgeleitet.",
                    "operator_action": "Befund mit Betreiber-Guide beheben und danach erneut scannen.",
                    "owner": "Marketing Ops/Webentwicklung",
                    "guide_slug": "google-dienste-datenschutzfreundlich-einbinden",
                    "guide_url": "https://saferpage.de/guides/google-dienste-datenschutzfreundlich-einbinden",
                    "source": "google_consent"
                }
            ],
            "guide_steps": [
                "Blockieren Sie Google Analytics, Google Tag Manager, Ads und vergleichbare Tags bis zur aktiven Einwilligung.",
                "Setzen Sie Consent Mode defaults vor dem ersten Google-Tag auf denied und feuern Sie config/event erst nach dem passenden Consent.",
                "Hosten Sie Google Fonts lokal oder entfernen Sie Remote-Font-Requests zu fonts.googleapis.com und fonts.gstatic.com.",
                "Laden Sie Maps, YouTube und reCAPTCHA erst nach Klick, Einwilligung oder auf klar begründeten Formularseiten.",
                "Nennen Sie Google-Dienste konkret in Datenschutzerklärung und Consent-Oberfläche, inklusive Zweck, Anbieter und Widerruf."
            ],
            "fix_steps": [
                {
                    "phase": "Befund reproduzieren",
                    "owner": "Marketing/IT",
                    "action": "SaferPage-Report, betroffene URL, Consent-Zustand und Request-/Cookie-/Header-Evidence sichern.",
                    "evidence": "Scan-ID, Screenshot, Exportzeile, betroffener Guide-Link."
                },
                {
                    "phase": "Ursache beheben",
                    "owner": "Marketing/IT",
                    "action": "Konfiguration, Tag, Inhalt, Anbieter, Header oder Formular gemäß Guide ändern und Änderung versionieren.",
                    "evidence": "Ticket, Konfigurationsdiff, CMS-/Tag-Manager-Änderung, Freigabe."
                },
                {
                    "phase": "Nutzertext aktualisieren",
                    "owner": "Datenschutz/Content",
                    "action": "Datenschutzhinweis, Cookie-Liste, Anbieterregister oder Trust-Dokumentation an die reale Technik anpassen.",
                    "evidence": "Versionierter Text, Änderungsdatum, Verantwortlicher."
                },
                {
                    "phase": "Re-Test und Abschluss",
                    "owner": "Compliance/IT",
                    "action": "Google-Requests vor und nach Consent vergleichen.",
                    "evidence": "Consent-Mode-Defaults, Tag-Manager-Regeln, Anbieterzwecke."
                }
            ],
            "acceptance": [
                "Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.",
                "Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.",
                "Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe."
            ],
            "evidence_exports": [
                "JSON/CSV/XLSX-Export für Rohbefunde und Audit-Tabellen",
                "ZIP-Nachweispaket mit Screenshot, Evidence Manifest und Guide-Verweisen",
                "Trust Documentation Library für öffentliche, sanitisierte und interne Nachweise"
            ],
            "retest": "Google-Requests vor und nach Consent vergleichen.",
            "sources": [
                {
                    "label": "DSK/BfDI: Hinweise zu Google Analytics",
                    "url": "https://www.bfdi.bund.de/SharedDocs/Downloads/DE/DSK/DSKBeschluessePositionspapiere/99DSK_Google-Analytics.pdf?__blob=publicationFile&v=3"
                },
                {
                    "label": "Google Tag Platform: Consent",
                    "url": "https://developers.google.com/tag-platform/security/guides/consent"
                },
                {
                    "label": "Google Consent Mode concepts",
                    "url": "https://developers.google.com/tag-platform/security/concepts/consent-mode"
                },
                {
                    "label": "Google Fonts Privacy FAQ",
                    "url": "https://developers.google.com/fonts/faq/privacy"
                }
            ]
        },
        {
            "guide_slug": "ssl-zertifikat-reparieren",
            "guide_url": "https://saferpage.de/guides/ssl-zertifikat-reparieren",
            "title": "SSL-Zertifikat reparieren",
            "intro": "Beheben Sie abgelaufene, falsche oder unvollständige HTTPS-Zertifikate, damit Nutzer keine Browserwarnung sehen.",
            "priority": "hoch",
            "impact_score": 86,
            "phase": "0-7 Tage",
            "area": "TLS",
            "owner": "IT/Webbetrieb",
            "effort": "klein",
            "issue_count": 1,
            "issues": [
                {
                    "id": "certificate_expires_soon",
                    "area": "tls",
                    "title": "TLS-Zertifikat läuft bald ab",
                    "priority": "hoch",
                    "impact_score": 86,
                    "evidence": "",
                    "operator_action": "Zertifikat rechtzeitig erneuern; bei weniger als 7 Tagen sofort prüfen.",
                    "owner": "Website-Betrieb/Datenschutz",
                    "guide_slug": "ssl-zertifikat-reparieren",
                    "guide_url": "https://saferpage.de/guides/ssl-zertifikat-reparieren",
                    "source": "finding"
                }
            ],
            "guide_steps": [
                "Prüfen Sie, ob das Zertifikat exakt zur Domain und zu allen verwendeten Hostnamen passt, zum Beispiel example.de und www.example.de.",
                "Erneuern Sie abgelaufene Zertifikate und aktivieren Sie automatische Erneuerung, etwa über certbot oder den Hosting-Anbieter.",
                "Stellen Sie sicher, dass der Webserver das richtige Zertifikat im passenden Nginx-/Apache-vHost ausliefert.",
                "Deaktivieren Sie alte TLS-Versionen und testen Sie danach Domain und www-Variante erneut."
            ],
            "fix_steps": [
                {
                    "phase": "Befund reproduzieren",
                    "owner": "IT/Webbetrieb",
                    "action": "SaferPage-Report, betroffene URL, Consent-Zustand und Request-/Cookie-/Header-Evidence sichern.",
                    "evidence": "Scan-ID, Screenshot, Exportzeile, betroffener Guide-Link."
                },
                {
                    "phase": "Ursache beheben",
                    "owner": "IT/Webbetrieb",
                    "action": "Konfiguration, Tag, Inhalt, Anbieter, Header oder Formular gemäß Guide ändern und Änderung versionieren.",
                    "evidence": "Ticket, Konfigurationsdiff, CMS-/Tag-Manager-Änderung, Freigabe."
                },
                {
                    "phase": "Nutzertext aktualisieren",
                    "owner": "Datenschutz/Content",
                    "action": "Datenschutzhinweis, Cookie-Liste, Anbieterregister oder Trust-Dokumentation an die reale Technik anpassen.",
                    "evidence": "Versionierter Text, Änderungsdatum, Verantwortlicher."
                },
                {
                    "phase": "Re-Test und Abschluss",
                    "owner": "Compliance/IT",
                    "action": "Domain und www-Variante per HTTPS erneut prüfen.",
                    "evidence": "Zertifikatskette, Erneuerungsjob, Nginx-/CDN-vHost."
                }
            ],
            "acceptance": [
                "Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.",
                "Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.",
                "Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe."
            ],
            "evidence_exports": [
                "JSON/CSV/XLSX-Export für Rohbefunde und Audit-Tabellen",
                "ZIP-Nachweispaket mit Screenshot, Evidence Manifest und Guide-Verweisen",
                "Trust Documentation Library für öffentliche, sanitisierte und interne Nachweise"
            ],
            "retest": "Domain und www-Variante per HTTPS erneut prüfen.",
            "sources": [
                {
                    "label": "BSI Mindeststandard TLS 2.3",
                    "url": "https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Mindeststandards/Mindeststandard_BSI_TLS_Version_2_3.pdf?__blob=publicationFile&v=4"
                },
                {
                    "label": "BSI IT-Grundschutz APP.3.2 Webserver",
                    "url": "https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Grundschutz/IT-GS-Kompendium_Einzel_PDFs_2023/06_APP_Anwendungen/APP_3_2_Webserver_Edition_2023.pdf?__blob=publicationFile&v=3"
                }
            ]
        },
        {
            "guide_slug": "security-header-setzen",
            "guide_url": "https://saferpage.de/guides/security-header-setzen",
            "title": "Security-Header setzen",
            "intro": "Sicherheitsheader reduzieren typische Browserrisiken und verbessern den technischen Eindruck der Website.",
            "priority": "hoch",
            "impact_score": 86,
            "phase": "0-7 Tage",
            "area": "Web Security",
            "owner": "IT/Security",
            "effort": "mittel",
            "issue_count": 10,
            "issues": [
                {
                    "id": "missing_hsts",
                    "area": "security_headers",
                    "title": "HSTS fehlt",
                    "priority": "hoch",
                    "impact_score": 86,
                    "evidence": "",
                    "operator_action": "Header `strict-transport-security` setzen und nach Deployment erneut prüfen.",
                    "owner": "Website-Betrieb/Datenschutz",
                    "guide_slug": "security-header-setzen",
                    "guide_url": "https://saferpage.de/guides/security-header-setzen",
                    "source": "finding"
                },
                {
                    "id": "missing_csp",
                    "area": "security_headers",
                    "title": "Content-Security-Policy fehlt",
                    "priority": "hoch",
                    "impact_score": 86,
                    "evidence": "",
                    "operator_action": "Header `content-security-policy` setzen und nach Deployment erneut prüfen.",
                    "owner": "Website-Betrieb/Datenschutz",
                    "guide_slug": "security-header-setzen",
                    "guide_url": "https://saferpage.de/guides/security-header-setzen",
                    "source": "finding"
                },
                {
                    "id": "missing_x_frame_options",
                    "area": "security_headers",
                    "title": "X-Frame-Options fehlt",
                    "priority": "hoch",
                    "impact_score": 86,
                    "evidence": "",
                    "operator_action": "Header `x-frame-options` setzen und nach Deployment erneut prüfen.",
                    "owner": "Website-Betrieb/Datenschutz",
                    "guide_slug": "security-header-setzen",
                    "guide_url": "https://saferpage.de/guides/security-header-setzen",
                    "source": "finding"
                },
                {
                    "id": "module_security_tls",
                    "area": "Audit-Modul",
                    "title": "Sicherheit, TLS & Header",
                    "priority": "hoch",
                    "impact_score": 54,
                    "evidence": "3 Infrastruktur-Hinweis(e), Security-Header: 1/9 vorhanden, 8 fehlen, externe Skript-Hosts: 0.",
                    "operator_action": "HTTPS, Zertifikat, HSTS, CSP, zentrale Security-Header und externe Skriptquellen sauber konfigurieren.",
                    "owner": "Website-Betrieb/Datenschutz",
                    "guide_slug": "security-header-setzen",
                    "guide_url": "https://saferpage.de/guides/security-header-setzen",
                    "source": "audit_module"
                },
                {
                    "id": "security_header_gap",
                    "area": "Security",
                    "title": "Security-Header, Referrer-Policy und Browser-Schutz setzen",
                    "priority": "hoch",
                    "impact_score": 54,
                    "evidence": "1 von 9 wichtigen Security-Headern vorhanden, 1 korrekt bewertet. Keine Content-Security-Policy gefunden.",
                    "operator_action": "Befund mit Betreiber-Guide beheben und danach erneut scannen.",
                    "owner": "IT/Security",
                    "guide_slug": "security-header-setzen",
                    "guide_url": "https://saferpage.de/guides/security-header-setzen",
                    "source": "security_header"
                },
                {
                    "id": "missing_cross_origin_embedder_policy",
                    "area": "security_headers",
                    "title": "Cross-Origin-Embedder-Policy fehlt",
                    "priority": "niedrig",
                    "impact_score": 55,
                    "evidence": "",
                    "operator_action": "Header `cross-origin-embedder-policy` setzen und nach Deployment erneut prüfen.",
                    "owner": "Website-Betrieb/Datenschutz",
                    "guide_slug": "security-header-setzen",
                    "guide_url": "https://saferpage.de/guides/security-header-setzen",
                    "source": "finding"
                },
                {
                    "id": "missing_cross_origin_opener_policy",
                    "area": "security_headers",
                    "title": "Cross-Origin-Opener-Policy fehlt",
                    "priority": "niedrig",
                    "impact_score": 55,
                    "evidence": "",
                    "operator_action": "Header `cross-origin-opener-policy` setzen und nach Deployment erneut prüfen.",
                    "owner": "Website-Betrieb/Datenschutz",
                    "guide_slug": "security-header-setzen",
                    "guide_url": "https://saferpage.de/guides/security-header-setzen",
                    "source": "finding"
                },
                {
                    "id": "missing_cross_origin_resource_policy",
                    "area": "security_headers",
                    "title": "Cross-Origin-Resource-Policy fehlt",
                    "priority": "niedrig",
                    "impact_score": 55,
                    "evidence": "",
                    "operator_action": "Header `cross-origin-resource-policy` setzen und nach Deployment erneut prüfen.",
                    "owner": "Website-Betrieb/Datenschutz",
                    "guide_slug": "security-header-setzen",
                    "guide_url": "https://saferpage.de/guides/security-header-setzen",
                    "source": "finding"
                },
                {
                    "id": "missing_referrer_policy",
                    "area": "security_headers",
                    "title": "Referrer-Policy fehlt",
                    "priority": "niedrig",
                    "impact_score": 55,
                    "evidence": "",
                    "operator_action": "Header `referrer-policy` setzen und nach Deployment erneut prüfen.",
                    "owner": "Website-Betrieb/Datenschutz",
                    "guide_slug": "security-header-setzen",
                    "guide_url": "https://saferpage.de/guides/security-header-setzen",
                    "source": "finding"
                },
                {
                    "id": "missing_permissions_policy",
                    "area": "security_headers",
                    "title": "Permissions-Policy fehlt",
                    "priority": "niedrig",
                    "impact_score": 55,
                    "evidence": "",
                    "operator_action": "Header `permissions-policy` setzen und nach Deployment erneut prüfen.",
                    "owner": "Website-Betrieb/Datenschutz",
                    "guide_slug": "security-header-setzen",
                    "guide_url": "https://saferpage.de/guides/security-header-setzen",
                    "source": "finding"
                }
            ],
            "guide_steps": [
                "Setzen Sie HSTS nach erfolgreichem HTTPS-Test.",
                "Nutzen Sie Content-Security-Policy, X-Frame-Options, X-Content-Type-Options und Referrer-Policy.",
                "Starten Sie mit einer vorsichtigen CSP im Report-Only-Modus und verschärfen Sie sie schrittweise.",
                "Entfernen Sie unsafe-inline, unsafe-eval, Wildcards und reine http:-Quellen aus script-src, sobald Nonces, Hashes oder konkrete Hosts funktionieren.",
                "Setzen Sie base-uri und object-src restriktiv, typischerweise base-uri self und object-src none.",
                "Nutzen Sie frame-ancestors oder X-Frame-Options, damit fremde Seiten die Website nicht ungewollt einbetten."
            ],
            "fix_steps": [
                {
                    "phase": "Befund reproduzieren",
                    "owner": "IT/Security",
                    "action": "SaferPage-Report, betroffene URL, Consent-Zustand und Request-/Cookie-/Header-Evidence sichern.",
                    "evidence": "Scan-ID, Screenshot, Exportzeile, betroffener Guide-Link."
                },
                {
                    "phase": "Ursache beheben",
                    "owner": "IT/Security",
                    "action": "Konfiguration, Tag, Inhalt, Anbieter, Header oder Formular gemäß Guide ändern und Änderung versionieren.",
                    "evidence": "Ticket, Konfigurationsdiff, CMS-/Tag-Manager-Änderung, Freigabe."
                },
                {
                    "phase": "Nutzertext aktualisieren",
                    "owner": "Datenschutz/Content",
                    "action": "Datenschutzhinweis, Cookie-Liste, Anbieterregister oder Trust-Dokumentation an die reale Technik anpassen.",
                    "evidence": "Versionierter Text, Änderungsdatum, Verantwortlicher."
                },
                {
                    "phase": "Re-Test und Abschluss",
                    "owner": "Compliance/IT",
                    "action": "Header, TLS, CSP und Referrer-Policy nach Deployment erneut scannen.",
                    "evidence": "Nginx/Apache/CDN-Konfiguration, Header-Export, Rollback-Plan."
                }
            ],
            "acceptance": [
                "Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.",
                "Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.",
                "Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe."
            ],
            "evidence_exports": [
                "JSON/CSV/XLSX-Export für Rohbefunde und Audit-Tabellen",
                "ZIP-Nachweispaket mit Screenshot, Evidence Manifest und Guide-Verweisen",
                "Trust Documentation Library für öffentliche, sanitisierte und interne Nachweise"
            ],
            "retest": "Header, TLS, CSP und Referrer-Policy nach Deployment erneut scannen.",
            "sources": [
                {
                    "label": "BSI IT-Grundschutz APP.3.1 Webanwendungen",
                    "url": "https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Grundschutz/IT-GS-Kompendium_Einzel_PDFs_2023/06_APP_Anwendungen/APP_3_1_Webanwendungen_und_Webservices_Edition_2023.pdf?__blob=publicationFile&v=3"
                },
                {
                    "label": "BSI IT-Grundschutz APP.3.2 Webserver",
                    "url": "https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Grundschutz/IT-GS-Kompendium_Einzel_PDFs_2023/06_APP_Anwendungen/APP_3_2_Webserver_Edition_2023.pdf?__blob=publicationFile&v=3"
                },
                {
                    "label": "MDN: Content Security Policy",
                    "url": "https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP"
                }
            ]
        },
        {
            "guide_slug": "barrierefreiheit-cookie-banner-formulare",
            "guide_url": "https://saferpage.de/guides/barrierefreiheit-cookie-banner-formulare",
            "title": "Barrierefreiheit bei Bannern und Formularen prüfen",
            "intro": "Der Datenschutz-Webseiten-Report betont, dass Cookie-Banner und Formulare typische Problemstellen für Behörden- und Nutzerfreundlichkeit sind.",
            "priority": "mittel",
            "impact_score": 55,
            "phase": "7-30 Tage",
            "area": "Usability & BITV",
            "owner": "UX/Content/IT",
            "effort": "mittel",
            "issue_count": 3,
            "issues": [
                {
                    "id": "module_accessibility_usability",
                    "area": "Audit-Modul",
                    "title": "Barrierefreiheit & Usability",
                    "priority": "mittel",
                    "impact_score": 32,
                    "evidence": "24 Bild(er) ohne alt, 0 Formularfeld(er) ohne Beschriftung, 0 Button(s) ohne Namen.",
                    "operator_action": "Alt-Texte, Formularlabels, Button-Namen, lang-Attribut und Überschriftenstruktur für Nutzer und Screenreader prüfen.",
                    "owner": "Website-Betrieb/Datenschutz",
                    "guide_slug": "barrierefreiheit-cookie-banner-formulare",
                    "guide_url": "https://saferpage.de/guides/barrierefreiheit-cookie-banner-formulare",
                    "source": "audit_module"
                },
                {
                    "id": "accessibility_gap",
                    "area": "Barrierefreiheit",
                    "title": "Cookie-Banner, Formulare und mobile Nutzung barriereärmer machen",
                    "priority": "mittel",
                    "impact_score": 32,
                    "evidence": "24 Bild(er), 1 Formularfeld(er), 0 Button(s) im passiven HTML-Sample auf Basis-Barrierefreiheit geprüft.",
                    "operator_action": "Befund mit Betreiber-Guide beheben und danach erneut scannen.",
                    "owner": "UX/IT",
                    "guide_slug": "barrierefreiheit-cookie-banner-formulare",
                    "guide_url": "https://saferpage.de/guides/barrierefreiheit-cookie-banner-formulare",
                    "source": "accessibility"
                },
                {
                    "id": "image_alt_missing",
                    "area": "accessibility",
                    "title": "Bilder ohne Alternativtext",
                    "priority": "niedrig",
                    "impact_score": 55,
                    "evidence": "",
                    "operator_action": "Inhaltliche Bilder mit alt-Text versehen; dekorative Bilder mit leerem alt oder aria-hidden kennzeichnen.",
                    "owner": "Website-Betrieb/Datenschutz",
                    "guide_slug": "barrierefreiheit-cookie-banner-formulare",
                    "guide_url": "https://saferpage.de/guides/barrierefreiheit-cookie-banner-formulare",
                    "source": "finding"
                }
            ],
            "guide_steps": [
                "Stellen Sie sicher, dass Cookie-Banner per Tastatur, Screenreader und Mobilgerät bedienbar sind.",
                "Blockieren Sie Datenschutz, Impressum und Inhalt nicht dauerhaft durch ein Banner.",
                "Versehen Sie Formularfelder mit Labels, verständlichen Fehlermeldungen und passenden Autocomplete-Attributen.",
                "Prüfen Sie Kontrast, Fokuszustände, Tab-Reihenfolge und Feedbackmechanismus für Barrierefreiheitsmeldungen.",
                "Testen Sie kritische Formulare manuell und automatisiert, besonders Kontakt, Antrag, Login und Newsletter."
            ],
            "fix_steps": [
                {
                    "phase": "Befund reproduzieren",
                    "owner": "UX/Content/IT",
                    "action": "SaferPage-Report, betroffene URL, Consent-Zustand und Request-/Cookie-/Header-Evidence sichern.",
                    "evidence": "Scan-ID, Screenshot, Exportzeile, betroffener Guide-Link."
                },
                {
                    "phase": "Ursache beheben",
                    "owner": "UX/Content/IT",
                    "action": "Konfiguration, Tag, Inhalt, Anbieter, Header oder Formular gemäß Guide ändern und Änderung versionieren.",
                    "evidence": "Ticket, Konfigurationsdiff, CMS-/Tag-Manager-Änderung, Freigabe."
                },
                {
                    "phase": "Nutzertext aktualisieren",
                    "owner": "Datenschutz/Content",
                    "action": "Datenschutzhinweis, Cookie-Liste, Anbieterregister oder Trust-Dokumentation an die reale Technik anpassen.",
                    "evidence": "Versionierter Text, Änderungsdatum, Verantwortlicher."
                },
                {
                    "phase": "Re-Test und Abschluss",
                    "owner": "Compliance/IT",
                    "action": "Tastatur, Screenreader, Kontrast und Mobilansicht manuell prüfen.",
                    "evidence": "Testprotokoll, Screenshots, bekannte Einschränkungen."
                }
            ],
            "acceptance": [
                "Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.",
                "Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.",
                "Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe."
            ],
            "evidence_exports": [
                "JSON/CSV/XLSX-Export für Rohbefunde und Audit-Tabellen",
                "ZIP-Nachweispaket mit Screenshot, Evidence Manifest und Guide-Verweisen",
                "Trust Documentation Library für öffentliche, sanitisierte und interne Nachweise"
            ],
            "retest": "Tastatur, Screenreader, Kontrast und Mobilansicht manuell prüfen.",
            "sources": [
                {
                    "label": "BITV 2.0",
                    "url": "https://www.gesetze-im-internet.de/bitv_2_0/"
                },
                {
                    "label": "BFIT Bund",
                    "url": "https://www.bfit-bund.de/DE/Home/home_node.html"
                },
                {
                    "label": "Google Search Central: Page Experience",
                    "url": "https://developers.google.com/search/docs/appearance/page-experience"
                }
            ]
        },
        {
            "guide_slug": "externe-skripte-und-sri-absichern",
            "guide_url": "https://saferpage.de/guides/externe-skripte-und-sri-absichern",
            "title": "Externe Skripte und SRI absichern",
            "intro": "Externe JavaScript-Dateien sind eine Lieferkette im Browser. Für Ihre Website zählen Datenschutz, Integrität und klare Kontrolle über Tracking- und Tag-Skripte.",
            "priority": "niedrig",
            "impact_score": 55,
            "phase": "quartalsweise",
            "area": "Browser Supply Chain",
            "owner": "IT/Webentwicklung",
            "effort": "mittel",
            "issue_count": 1,
            "issues": [
                {
                    "id": "missing_meta_description",
                    "area": "content",
                    "title": "Meta-Description fehlt",
                    "priority": "niedrig",
                    "impact_score": 55,
                    "evidence": "",
                    "operator_action": "Eine kurze Beschreibung setzen, die den Zweck der Seite erklärt.",
                    "owner": "Website-Betrieb/Datenschutz",
                    "guide_slug": "externe-skripte-und-sri-absichern",
                    "guide_url": "https://saferpage.de/guides/externe-skripte-und-sri-absichern",
                    "source": "finding"
                }
            ],
            "guide_steps": [
                "Führen Sie ein Skriptinventar mit Host, Anbieter, Zweck, Kategorie, Rechtsgrundlage, Consent-Zustand und Verantwortlichem.",
                "Hosten Sie stabile Bibliotheken lokal, wenn kein zwingender CDN-Grund besteht.",
                "Setzen Sie für statische CDN-Skripte Subresource Integrity mit passendem crossorigin-Attribut und aktualisieren Sie Hashes bei Versionswechseln.",
                "Beschränken Sie erlaubte Skriptquellen über eine Content-Security-Policy und testen Sie Änderungen zuerst im Report-Only-Modus.",
                "Laden Sie Tracking-, Tag-Manager-, Ads-, Analytics- und Session-Replay-Skripte erst nach passender Einwilligung.",
                "Prüfen Sie nach jedem Plugin-, Theme-, Consent-Tool- oder Tag-Manager-Update erneut, ob neue externe Skriptquellen hinzugekommen sind."
            ],
            "fix_steps": [
                {
                    "phase": "Befund reproduzieren",
                    "owner": "IT/Webentwicklung",
                    "action": "SaferPage-Report, betroffene URL, Consent-Zustand und Request-/Cookie-/Header-Evidence sichern.",
                    "evidence": "Scan-ID, Screenshot, Exportzeile, betroffener Guide-Link."
                },
                {
                    "phase": "Ursache beheben",
                    "owner": "IT/Webentwicklung",
                    "action": "Konfiguration, Tag, Inhalt, Anbieter, Header oder Formular gemäß Guide ändern und Änderung versionieren.",
                    "evidence": "Ticket, Konfigurationsdiff, CMS-/Tag-Manager-Änderung, Freigabe."
                },
                {
                    "phase": "Nutzertext aktualisieren",
                    "owner": "Datenschutz/Content",
                    "action": "Datenschutzhinweis, Cookie-Liste, Anbieterregister oder Trust-Dokumentation an die reale Technik anpassen.",
                    "evidence": "Versionierter Text, Änderungsdatum, Verantwortlicher."
                },
                {
                    "phase": "Re-Test und Abschluss",
                    "owner": "Compliance/IT",
                    "action": "Externe Skripte, SRI, CSP und Consent-Auslösung erneut prüfen.",
                    "evidence": "Skriptinventar, SRI-Hashes, CSP-Report-Only-Test."
                }
            ],
            "acceptance": [
                "Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.",
                "Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.",
                "Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe."
            ],
            "evidence_exports": [
                "JSON/CSV/XLSX-Export für Rohbefunde und Audit-Tabellen",
                "ZIP-Nachweispaket mit Screenshot, Evidence Manifest und Guide-Verweisen",
                "Trust Documentation Library für öffentliche, sanitisierte und interne Nachweise"
            ],
            "retest": "Externe Skripte, SRI, CSP und Consent-Auslösung erneut prüfen.",
            "sources": [
                {
                    "label": "BSI IT-Grundschutz APP.3.1 Webanwendungen",
                    "url": "https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Grundschutz/IT-GS-Kompendium_Einzel_PDFs_2023/06_APP_Anwendungen/APP_3_1_Webanwendungen_und_Webservices_Edition_2023.pdf?__blob=publicationFile&v=3"
                },
                {
                    "label": "BSI IT-Grundschutz APP.3.2 Webserver",
                    "url": "https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Grundschutz/IT-GS-Kompendium_Einzel_PDFs_2023/06_APP_Anwendungen/APP_3_2_Webserver_Edition_2023.pdf?__blob=publicationFile&v=3"
                },
                {
                    "label": "MDN: Subresource Integrity",
                    "url": "https://developer.mozilla.org/en-US/docs/Web/Security/Subresource_Integrity"
                },
                {
                    "label": "DSK Orientierungshilfe Digitale Dienste",
                    "url": "https://www.datenschutzkonferenz-online.de/media/oh/OH_Digitale_Dienste.pdf"
                },
                {
                    "label": "BfDI: Cookies und Tracking-Technologien",
                    "url": "https://www.bfdi.bund.de/DE/Buerger/Inhalte/Telemedien/Cookies.html"
                }
            ]
        }
    ],
    "remediation_tickets": [
        {
            "id": "remediation_external_canonical",
            "type": "befund_fix",
            "title": "Canonical zeigt auf fremde Domain",
            "priority": "hoch",
            "owner": "Website-Betrieb/Datenschutz",
            "area": "seo",
            "evidence": "",
            "action": "Canonical-Tags sollten nur bewusst auf fremde Domains zeigen; sonst kann Traffic/Ranking umgeleitet werden.",
            "acceptance_criteria": [
                "Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.",
                "Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.",
                "Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe."
            ],
            "guide_url": "https://saferpage.de/guides/seo-spam-und-cloaking-bereinigen",
            "evidence_url": "https://saferpage.de/befunde/bvkj.de",
            "rescan_url": "https://saferpage.de/scanbetrieb/bvkj.de",
            "source": "finding",
            "sla": "7 Tage",
            "fingerprint": "a875b89238f4850630895bee7429cad86786114b53790a6ec212f77917b7162f",
            "duplicate_group_count": 1,
            "deduplicated_duplicate_count": 0
        },
        {
            "id": "remediation_missing_csp",
            "type": "befund_fix",
            "title": "Content-Security-Policy fehlt",
            "priority": "hoch",
            "owner": "Website-Betrieb/Datenschutz",
            "area": "security_headers",
            "evidence": "",
            "action": "Header `content-security-policy` setzen und nach Deployment erneut prüfen.",
            "acceptance_criteria": [
                "Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.",
                "Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.",
                "Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe."
            ],
            "guide_url": "https://saferpage.de/guides/security-header-setzen",
            "evidence_url": "https://saferpage.de/befunde/bvkj.de",
            "rescan_url": "https://saferpage.de/scanbetrieb/bvkj.de",
            "source": "finding",
            "sla": "7 Tage",
            "fingerprint": "26b9534373385506779b7bf81348f3c4f7ed18b999de66aa039091b4f75dc857",
            "duplicate_group_count": 1
        },
        {
            "id": "remediation_google_consent_mode_missing",
            "type": "befund_fix",
            "title": "Google Consent Mode Default nicht erkannt",
            "priority": "hoch",
            "owner": "Website-Betrieb/Datenschutz",
            "area": "privacy",
            "evidence": "",
            "action": "Vor dem ersten Google-Tag Consent-Defaults setzen, typischerweise ad_storage, analytics_storage, ad_user_data und ad_personalization auf denied.",
            "acceptance_criteria": [
                "Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.",
                "Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.",
                "Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe."
            ],
            "guide_url": "https://saferpage.de/guides/google-dienste-datenschutzfreundlich-einbinden",
            "evidence_url": "https://saferpage.de/befunde/bvkj.de",
            "rescan_url": "https://saferpage.de/scanbetrieb/bvkj.de",
            "source": "finding",
            "sla": "7 Tage",
            "fingerprint": "ef4d652840c15eaede4fde88f5a31361c353816942714aa2c1f1373ec1804c25",
            "duplicate_group_count": 1
        },
        {
            "id": "remediation_missing_hsts",
            "type": "befund_fix",
            "title": "HSTS fehlt",
            "priority": "hoch",
            "owner": "Website-Betrieb/Datenschutz",
            "area": "security_headers",
            "evidence": "",
            "action": "Header `strict-transport-security` setzen und nach Deployment erneut prüfen.",
            "acceptance_criteria": [
                "Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.",
                "Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.",
                "Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe."
            ],
            "guide_url": "https://saferpage.de/guides/security-header-setzen",
            "evidence_url": "https://saferpage.de/befunde/bvkj.de",
            "rescan_url": "https://saferpage.de/scanbetrieb/bvkj.de",
            "source": "finding",
            "sla": "7 Tage",
            "fingerprint": "3fb65abf3efe6897f10e5ae5bf647ff9f352361881d76df2886d2992c43232a1",
            "duplicate_group_count": 1
        },
        {
            "id": "remediation_unsupported_technology_version",
            "type": "befund_fix",
            "title": "PHP-Version ist nicht mehr upstream unterstuetzt",
            "priority": "hoch",
            "owner": "Website-Betrieb/Datenschutz",
            "area": "vulnerability",
            "evidence": "",
            "action": "PHP auf eine aktuell unterstuetzte Version migrieren. Upstream-Sicherheitsfixes gibt es laut php.net nur noch fuer PHP 8.2 bis 8.5; alte 7.x/8.0/8.1-Header sind kritisch, sofern kein Distribution-Backport nachweisbar ist.",
            "acceptance_criteria": [
                "Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.",
                "Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.",
                "Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe."
            ],
            "guide_url": "https://saferpage.de/guides/sichtbare-versionen-und-cves-beheben",
            "evidence_url": "https://saferpage.de/befunde/bvkj.de",
            "rescan_url": "https://saferpage.de/scanbetrieb/bvkj.de",
            "source": "finding",
            "sla": "7 Tage",
            "fingerprint": "b3cbb291eff25aadb2a92254dd0d87b91103291580ea627fd68da8e578100264",
            "duplicate_group_count": 1
        },
        {
            "id": "remediation_module_seo_integrity",
            "type": "befund_fix",
            "title": "SEO-Integrität & Cloaking",
            "priority": "hoch",
            "owner": "Website-Betrieb/Datenschutz",
            "area": "Audit-Modul",
            "evidence": "3 SEO-Spam-Hinweis(e), 0 Cloaking-Hinweis(e).",
            "action": "Versteckte Inhalte, Canonical-Missbrauch und Googlebot-Abweichungen entfernen.",
            "acceptance_criteria": [
                "Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.",
                "Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.",
                "Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe."
            ],
            "guide_url": "https://saferpage.de/guides/seo-spam-und-cloaking-bereinigen",
            "evidence_url": "https://saferpage.de/befunde/bvkj.de",
            "rescan_url": "https://saferpage.de/scanbetrieb/bvkj.de",
            "source": "audit_module",
            "sla": "7 Tage",
            "fingerprint": "03ecd83ab4d8e8418f621d5c2edde44a8ce100808c8e10e4af6793fc1004323c",
            "duplicate_group_count": 1
        },
        {
            "id": "remediation_security_header_gap",
            "type": "befund_fix",
            "title": "Security-Header, Referrer-Policy und Browser-Schutz setzen",
            "priority": "hoch",
            "owner": "IT/Security",
            "area": "Security",
            "evidence": "1 von 9 wichtigen Security-Headern vorhanden, 1 korrekt bewertet. Keine Content-Security-Policy gefunden.",
            "action": "Befund mit Betreiber-Guide beheben und danach erneut scannen.",
            "acceptance_criteria": [
                "Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.",
                "Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.",
                "Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe."
            ],
            "guide_url": "https://saferpage.de/guides/security-header-setzen",
            "evidence_url": "https://saferpage.de/befunde/bvkj.de",
            "rescan_url": "https://saferpage.de/scanbetrieb/bvkj.de",
            "source": "security_header",
            "sla": "7 Tage",
            "fingerprint": "1d6064eac12cf70d9c1dadfe9cfccce5b98040853ec753b52cc8479d0517be88",
            "duplicate_group_count": 1
        },
        {
            "id": "remediation_external_link_spam",
            "type": "befund_fix",
            "title": "Sehr viele externe Links erkannt",
            "priority": "hoch",
            "owner": "Website-Betrieb/Datenschutz",
            "area": "seo",
            "evidence": "",
            "action": "Prüfen, ob die Seite als Linkfarm, Affiliate-Brücke oder Spam-Seite dient.",
            "acceptance_criteria": [
                "Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.",
                "Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.",
                "Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe."
            ],
            "guide_url": "https://saferpage.de/guides/seo-spam-und-cloaking-bereinigen",
            "evidence_url": "https://saferpage.de/befunde/bvkj.de",
            "rescan_url": "https://saferpage.de/scanbetrieb/bvkj.de",
            "source": "finding",
            "sla": "7 Tage",
            "fingerprint": "4ab86201e9a718e7046ce471bc32f3746d6e9ae699a6b044e58d8298ffed6579",
            "duplicate_group_count": 1
        },
        {
            "id": "remediation_module_security_tls",
            "type": "befund_fix",
            "title": "Sicherheit, TLS & Header",
            "priority": "hoch",
            "owner": "Website-Betrieb/Datenschutz",
            "area": "Audit-Modul",
            "evidence": "3 Infrastruktur-Hinweis(e), Security-Header: 1/9 vorhanden, 8 fehlen, externe Skript-Hosts: 0.",
            "action": "HTTPS, Zertifikat, HSTS, CSP, zentrale Security-Header und externe Skriptquellen sauber konfigurieren.",
            "acceptance_criteria": [
                "Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.",
                "Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.",
                "Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe."
            ],
            "guide_url": "https://saferpage.de/guides/security-header-setzen",
            "evidence_url": "https://saferpage.de/befunde/bvkj.de",
            "rescan_url": "https://saferpage.de/scanbetrieb/bvkj.de",
            "source": "audit_module",
            "sla": "7 Tage",
            "fingerprint": "412d98743b01900776a80e0fba672556492f994841721e2d7cfb193ef2dd960c",
            "duplicate_group_count": 1
        },
        {
            "id": "remediation_certificate_expires_soon",
            "type": "befund_fix",
            "title": "TLS-Zertifikat läuft bald ab",
            "priority": "hoch",
            "owner": "Website-Betrieb/Datenschutz",
            "area": "tls",
            "evidence": "",
            "action": "Zertifikat rechtzeitig erneuern; bei weniger als 7 Tagen sofort prüfen.",
            "acceptance_criteria": [
                "Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.",
                "Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.",
                "Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe."
            ],
            "guide_url": "https://saferpage.de/guides/ssl-zertifikat-reparieren",
            "evidence_url": "https://saferpage.de/befunde/bvkj.de",
            "rescan_url": "https://saferpage.de/scanbetrieb/bvkj.de",
            "source": "finding",
            "sla": "7 Tage",
            "fingerprint": "b037dc12aafe7118bdd09ac578223506ba1e3f50ed0d9d92cf092267bc263733",
            "duplicate_group_count": 1
        },
        {
            "id": "remediation_hidden_text",
            "type": "befund_fix",
            "title": "Versteckter Text erkannt",
            "priority": "hoch",
            "owner": "Website-Betrieb/Datenschutz",
            "area": "seo",
            "evidence": "",
            "action": "Prüfen, ob Text absichtlich vor Nutzern verborgen, aber für Suchmaschinen platziert wird.",
            "acceptance_criteria": [
                "Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.",
                "Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.",
                "Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe."
            ],
            "guide_url": "https://saferpage.de/guides/seo-spam-und-cloaking-bereinigen",
            "evidence_url": "https://saferpage.de/befunde/bvkj.de",
            "rescan_url": "https://saferpage.de/scanbetrieb/bvkj.de",
            "source": "finding",
            "sla": "7 Tage",
            "fingerprint": "61d9a27edacba6af41781e581ab867f2d781e94d656b4b640591c9492fcee7f1",
            "duplicate_group_count": 1
        },
        {
            "id": "remediation_missing_x_frame_options",
            "type": "befund_fix",
            "title": "X-Frame-Options fehlt",
            "priority": "hoch",
            "owner": "Website-Betrieb/Datenschutz",
            "area": "security_headers",
            "evidence": "",
            "action": "Header `x-frame-options` setzen und nach Deployment erneut prüfen.",
            "acceptance_criteria": [
                "Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.",
                "Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.",
                "Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe."
            ],
            "guide_url": "https://saferpage.de/guides/security-header-setzen",
            "evidence_url": "https://saferpage.de/befunde/bvkj.de",
            "rescan_url": "https://saferpage.de/scanbetrieb/bvkj.de",
            "source": "finding",
            "sla": "7 Tage",
            "fingerprint": "95d06f7bf99062d3f6f48594588ea751438c5da51a4845c11c05df15e2ab34dd",
            "duplicate_group_count": 1
        },
        {
            "id": "remediation_module_accessibility_usability",
            "type": "befund_fix",
            "title": "Barrierefreiheit & Usability",
            "priority": "mittel",
            "owner": "Website-Betrieb/Datenschutz",
            "area": "Audit-Modul",
            "evidence": "24 Bild(er) ohne alt, 0 Formularfeld(er) ohne Beschriftung, 0 Button(s) ohne Namen.",
            "action": "Alt-Texte, Formularlabels, Button-Namen, lang-Attribut und Überschriftenstruktur für Nutzer und Screenreader prüfen.",
            "acceptance_criteria": [
                "Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.",
                "Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.",
                "Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe."
            ],
            "guide_url": "https://saferpage.de/guides/barrierefreiheit-cookie-banner-formulare",
            "evidence_url": "https://saferpage.de/befunde/bvkj.de",
            "rescan_url": "https://saferpage.de/scanbetrieb/bvkj.de",
            "source": "audit_module",
            "sla": "30 Tage",
            "fingerprint": "1026c2b67a84af392d50b900a2ea641b698d2cae99409c869a4b3856edcb4eda",
            "duplicate_group_count": 1
        },
        {
            "id": "remediation_accessibility_gap",
            "type": "befund_fix",
            "title": "Cookie-Banner, Formulare und mobile Nutzung barriereärmer machen",
            "priority": "mittel",
            "owner": "UX/IT",
            "area": "Barrierefreiheit",
            "evidence": "24 Bild(er), 1 Formularfeld(er), 0 Button(s) im passiven HTML-Sample auf Basis-Barrierefreiheit geprüft.",
            "action": "Befund mit Betreiber-Guide beheben und danach erneut scannen.",
            "acceptance_criteria": [
                "Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.",
                "Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.",
                "Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe."
            ],
            "guide_url": "https://saferpage.de/guides/barrierefreiheit-cookie-banner-formulare",
            "evidence_url": "https://saferpage.de/befunde/bvkj.de",
            "rescan_url": "https://saferpage.de/scanbetrieb/bvkj.de",
            "source": "accessibility",
            "sla": "30 Tage",
            "fingerprint": "be1ea9ccf1f6f303d9c34b30b7a56692a5740e6515c01a479d182048feade376",
            "duplicate_group_count": 1
        },
        {
            "id": "remediation_google_consent_gap",
            "type": "befund_fix",
            "title": "Google-Dienste",
            "priority": "mittel",
            "owner": "Marketing Ops/Webentwicklung",
            "area": "Google Consent Mode und Tags reparieren",
            "evidence": "Google-Tags und Consent-Mode-Signale wurden aus HTML, Browserkontakten und Tracking-IDs abgeleitet.",
            "action": "Befund mit Betreiber-Guide beheben und danach erneut scannen.",
            "acceptance_criteria": [
                "Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.",
                "Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.",
                "Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe."
            ],
            "guide_url": "https://saferpage.de/guides/google-dienste-datenschutzfreundlich-einbinden",
            "evidence_url": "https://saferpage.de/befunde/bvkj.de",
            "rescan_url": "https://saferpage.de/scanbetrieb/bvkj.de",
            "source": "google_consent",
            "sla": "30 Tage",
            "fingerprint": "7b3b50b7fb5dfd1bdff51539d4688cc46061b65b8153e8d9e6fc39803dae5acd",
            "duplicate_group_count": 1
        },
        {
            "id": "remediation_module_google_third_parties",
            "type": "befund_fix",
            "title": "Google-Dienste & Drittanbieter",
            "priority": "mittel",
            "owner": "Website-Betrieb/Datenschutz",
            "area": "Audit-Modul",
            "evidence": "Google-Tags: ja, 0 Google-nahe Domain(s), Consent-Default: nein, Analytics: nein, Werbung: nein, Fonts: nein.",
            "action": "Google-Dienste einzeln prüfen, Consent Mode sauber setzen und Fonts möglichst lokal ausliefern.",
            "acceptance_criteria": [
                "Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.",
                "Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.",
                "Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe."
            ],
            "guide_url": "https://saferpage.de/guides/google-dienste-datenschutzfreundlich-einbinden",
            "evidence_url": "https://saferpage.de/befunde/bvkj.de",
            "rescan_url": "https://saferpage.de/scanbetrieb/bvkj.de",
            "source": "audit_module",
            "sla": "30 Tage",
            "fingerprint": "5a16536c9fbb66eaa2d52e4462d4e725d0578da1c09262e46b224ad81c1f1985",
            "duplicate_group_count": 1
        },
        {
            "id": "mapping_baseline_tracker_mapping",
            "type": "service_mapping",
            "title": "Service- und Tracker-Mapping",
            "priority": "mittel",
            "owner": "Marketing/IT/Datenschutz",
            "area": "Tracker- und Service-Mapping",
            "evidence": "Keine einzelnen Tracker-Zeilen im gespeicherten Check verfügbar.",
            "action": "Nach nächstem Scan Cookies, Requests und Anbieter in Servicekarten überführen.",
            "acceptance_criteria": [
                "Dienst ist einer Servicekarte mit Anbieter, Zweck und Kategorie zugeordnet.",
                "Consent-Banner, Datenschutzhinweis und Anbieterregister verwenden dieselbe Bezeichnung.",
                "Re-Scan zeigt keine unbekannte oder ungeklärte Tracking-Auslösung."
            ],
            "guide_url": "https://saferpage.de/guides/servicekarte-und-anbieterinventar-aufbauen",
            "evidence_url": "https://saferpage.de/anbieter/bvkj.de",
            "rescan_url": "https://saferpage.de/scanbetrieb/bvkj.de",
            "source": "tracker_mapping",
            "sla": "30 Tage",
            "fingerprint": "f818dda36ce3b448ef2ac5e4c979bbdd38ebfc406e938a8de67d40c7603d3a9d",
            "duplicate_group_count": 1
        },
        {
            "id": "remediation_image_alt_missing",
            "type": "befund_fix",
            "title": "Bilder ohne Alternativtext",
            "priority": "niedrig",
            "owner": "Website-Betrieb/Datenschutz",
            "area": "accessibility",
            "evidence": "",
            "action": "Inhaltliche Bilder mit alt-Text versehen; dekorative Bilder mit leerem alt oder aria-hidden kennzeichnen.",
            "acceptance_criteria": [
                "Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.",
                "Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.",
                "Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe."
            ],
            "guide_url": "https://saferpage.de/guides/barrierefreiheit-cookie-banner-formulare",
            "evidence_url": "https://saferpage.de/befunde/bvkj.de",
            "rescan_url": "https://saferpage.de/scanbetrieb/bvkj.de",
            "source": "finding",
            "sla": "quartalsweise",
            "fingerprint": "2097cbe784632eb31f2e46dfcf154ca529693584dd73e3ab0cb954940feece3d",
            "duplicate_group_count": 1
        },
        {
            "id": "remediation_missing_cross_origin_embedder_policy",
            "type": "befund_fix",
            "title": "Cross-Origin-Embedder-Policy fehlt",
            "priority": "niedrig",
            "owner": "Website-Betrieb/Datenschutz",
            "area": "security_headers",
            "evidence": "",
            "action": "Header `cross-origin-embedder-policy` setzen und nach Deployment erneut prüfen.",
            "acceptance_criteria": [
                "Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.",
                "Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.",
                "Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe."
            ],
            "guide_url": "https://saferpage.de/guides/security-header-setzen",
            "evidence_url": "https://saferpage.de/befunde/bvkj.de",
            "rescan_url": "https://saferpage.de/scanbetrieb/bvkj.de",
            "source": "finding",
            "sla": "quartalsweise",
            "fingerprint": "c8d36072d81b63f9103982e29875cec130c514c20f982ffe6c35212cdfa0cee0",
            "duplicate_group_count": 1
        },
        {
            "id": "remediation_missing_cross_origin_opener_policy",
            "type": "befund_fix",
            "title": "Cross-Origin-Opener-Policy fehlt",
            "priority": "niedrig",
            "owner": "Website-Betrieb/Datenschutz",
            "area": "security_headers",
            "evidence": "",
            "action": "Header `cross-origin-opener-policy` setzen und nach Deployment erneut prüfen.",
            "acceptance_criteria": [
                "Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.",
                "Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.",
                "Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe."
            ],
            "guide_url": "https://saferpage.de/guides/security-header-setzen",
            "evidence_url": "https://saferpage.de/befunde/bvkj.de",
            "rescan_url": "https://saferpage.de/scanbetrieb/bvkj.de",
            "source": "finding",
            "sla": "quartalsweise",
            "fingerprint": "65a210c101429beda44d9f7dd2dea20bd40109b87783a2562d331f8251ffa332",
            "duplicate_group_count": 1
        },
        {
            "id": "remediation_missing_cross_origin_resource_policy",
            "type": "befund_fix",
            "title": "Cross-Origin-Resource-Policy fehlt",
            "priority": "niedrig",
            "owner": "Website-Betrieb/Datenschutz",
            "area": "security_headers",
            "evidence": "",
            "action": "Header `cross-origin-resource-policy` setzen und nach Deployment erneut prüfen.",
            "acceptance_criteria": [
                "Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.",
                "Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.",
                "Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe."
            ],
            "guide_url": "https://saferpage.de/guides/security-header-setzen",
            "evidence_url": "https://saferpage.de/befunde/bvkj.de",
            "rescan_url": "https://saferpage.de/scanbetrieb/bvkj.de",
            "source": "finding",
            "sla": "quartalsweise",
            "fingerprint": "d51f4623a35c3ae334a5dd59a43e462672f815eac1b654d30d0f2e2a74564176",
            "duplicate_group_count": 1
        },
        {
            "id": "remediation_missing_meta_description",
            "type": "befund_fix",
            "title": "Meta-Description fehlt",
            "priority": "niedrig",
            "owner": "Website-Betrieb/Datenschutz",
            "area": "content",
            "evidence": "",
            "action": "Eine kurze Beschreibung setzen, die den Zweck der Seite erklärt.",
            "acceptance_criteria": [
                "Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.",
                "Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.",
                "Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe."
            ],
            "guide_url": "https://saferpage.de/guides/externe-skripte-und-sri-absichern",
            "evidence_url": "https://saferpage.de/befunde/bvkj.de",
            "rescan_url": "https://saferpage.de/scanbetrieb/bvkj.de",
            "source": "finding",
            "sla": "quartalsweise",
            "fingerprint": "c7facf9d3cfe427999414e743f6e8776e8a18b182ee07cbfb0d427ffff06433d",
            "duplicate_group_count": 1
        },
        {
            "id": "remediation_missing_permissions_policy",
            "type": "befund_fix",
            "title": "Permissions-Policy fehlt",
            "priority": "niedrig",
            "owner": "Website-Betrieb/Datenschutz",
            "area": "security_headers",
            "evidence": "",
            "action": "Header `permissions-policy` setzen und nach Deployment erneut prüfen.",
            "acceptance_criteria": [
                "Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.",
                "Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.",
                "Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe."
            ],
            "guide_url": "https://saferpage.de/guides/security-header-setzen",
            "evidence_url": "https://saferpage.de/befunde/bvkj.de",
            "rescan_url": "https://saferpage.de/scanbetrieb/bvkj.de",
            "source": "finding",
            "sla": "quartalsweise",
            "fingerprint": "801cc01c5ceeafba6584ae88b9416fcb3428613a45932329f1a56f23c62277b5",
            "duplicate_group_count": 1
        },
        {
            "id": "remediation_missing_referrer_policy",
            "type": "befund_fix",
            "title": "Referrer-Policy fehlt",
            "priority": "niedrig",
            "owner": "Website-Betrieb/Datenschutz",
            "area": "security_headers",
            "evidence": "",
            "action": "Header `referrer-policy` setzen und nach Deployment erneut prüfen.",
            "acceptance_criteria": [
                "Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.",
                "Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.",
                "Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe."
            ],
            "guide_url": "https://saferpage.de/guides/security-header-setzen",
            "evidence_url": "https://saferpage.de/befunde/bvkj.de",
            "rescan_url": "https://saferpage.de/scanbetrieb/bvkj.de",
            "source": "finding",
            "sla": "quartalsweise",
            "fingerprint": "7ea210c04d4624f285ff9df75bf59e7fee93391b5416651ff18fd63633410aa7",
            "duplicate_group_count": 1
        }
    ],
    "tracker_mapping_tasks": [
        {
            "id": "baseline_tracker_mapping",
            "label": "Service- und Tracker-Mapping",
            "type": "process",
            "status": "vorbereiten",
            "evidence": "Keine einzelnen Tracker-Zeilen im gespeicherten Check verfügbar.",
            "action": "Nach nächstem Scan Cookies, Requests und Anbieter in Servicekarten überführen.",
            "guide_slug": "servicekarte-und-anbieterinventar-aufbauen",
            "guide_url": "https://saferpage.de/guides/servicekarte-und-anbieterinventar-aufbauen",
            "target_url": "https://saferpage.de/anbieter/bvkj.de"
        }
    ],
    "platform_playbooks": [
        {
            "id": "joomla",
            "platform": "Joomla",
            "summary": "Joomla-Templates, Erweiterungen und Cookie-Plugins nach Updates gegen echte Browserkontakte prüfen.",
            "steps": [
                "Joomla Core, Templates und Erweiterungen aktualisieren; veraltete Erweiterungen entfernen.",
                "Template-Overrides und Module nach externen Skripten, Fonts, Maps, Videos, Captchas und Pixeln prüfen.",
                "Cookie-/Consent-Erweiterung so konfigurieren, dass nicht notwendige Dienste erst nach Einwilligung laden.",
                "Security-Header und HTTPS-Weiterleitungen im Hosting/Webserver setzen und Re-Scan ausführen."
            ],
            "acceptance": [
                "Template-/Extension-Änderungen dokumentiert.",
                "Consent-Test zeigt keine vorzeitigen Trackingkontakte.",
                "Fix-Guides sind abgearbeitet."
            ],
            "owner": "Webbetrieb/IT/Datenschutz",
            "guide_url": "https://saferpage.de/guides/cms-plugin-patchstand-nachweisen",
            "technology_evidence_url": "https://saferpage.de/technik/bvkj.de/export",
            "rescan_url": "https://saferpage.de/?url=bvkj.de",
            "boundary": "Passiv abgeleitet: SaferPage behauptet nur sichtbare CMS-/Shop-/Deployment-Signale. Betreiber müssen Plattform, Versionen, Plugins, Apps und interne Deployments bestätigen."
        },
        {
            "id": "typo3",
            "platform": "TYPO3",
            "summary": "TYPO3-Core, Extensions, Sitepackage, Fluid-Templates, Consent-Extension und Caches zusammen prüfen.",
            "steps": [
                "TYPO3 Core und Extensions gemäß Wartungsstatus aktualisieren; Composer-/Extension-Lockfile sichern.",
                "Sitepackage und Fluid-Templates nach externen Fonts, Maps, Videos, Analytics und Tag-Manager-Snippets durchsuchen.",
                "Consent-Extension so konfigurieren, dass externe Skripte und Iframes erst nach passender Einwilligung laden.",
                "Security-Header und TLS/HSTS auf Webserver-/Proxy-Ebene testen; TYPO3-Caches nach Änderung leeren."
            ],
            "acceptance": [
                "Extension-Liste und Wartungsstatus dokumentiert.",
                "Pflichtseiten werden im Seiteninventar gefunden.",
                "Consent-Zustände sind im Re-Scan stabil."
            ],
            "owner": "Webbetrieb/IT/Datenschutz",
            "guide_url": "https://saferpage.de/guides/cms-plugin-patchstand-nachweisen",
            "technology_evidence_url": "https://saferpage.de/technik/bvkj.de/export",
            "rescan_url": "https://saferpage.de/?url=bvkj.de",
            "boundary": "Passiv abgeleitet: SaferPage behauptet nur sichtbare CMS-/Shop-/Deployment-Signale. Betreiber müssen Plattform, Versionen, Plugins, Apps und interne Deployments bestätigen."
        }
    ],
    "quality_review_playbook": {
        "summary": "Betreiber-Review-Playbook gegen typische Fehlalarme: Consent-/Paywall-Grenzen, Google-Consent-Anwendbarkeit, Formular-Coverage, Cookie-Kontext und Score-Wording.",
        "rows": [
            {
                "id": "consent_wall_paywall_review",
                "label": "Consent-Wall, Paywall oder Overlay einordnen",
                "review_question": "Hat der automatische Lauf ein Overlay, eine PUR-/Abo-Wall, Geoblocking oder eine Login-Grenze gesehen?",
                "operator_action": "Wenn Overlay, Login, PUR-/Abo-Wall oder Geoblocking Inhalte verdeckt, Befunde zu Impressum, Formularen, Cookies und verstecktem Text manuell prüfen.",
                "acceptance": "Manuelle Prüfung ist mit Screenshot, Pfad, Entscheidung und Re-Scan-Vermerk dokumentiert.",
                "boundary": "Ein verdeckter Footer oder Paywall-Text ist kein automatischer Nachweis für fehlende Betreibertransparenz.",
                "evidence_url": "https://saferpage.de/bvkj.de",
                "guide_url": "https://saferpage.de/methodik",
                "status": "bei Bedarf prüfen"
            },
            {
                "id": "google_consent_applicability_review",
                "label": "Google Consent Mode nur bei Google-Evidenz fordern",
                "review_question": "Wurden GTM, gtag, Analytics, Ads oder eine Google-Tracking-ID wirklich gesehen?",
                "operator_action": "Keinen Google-Consent-Mode-Fix verlangen, solange keine GTM-/Analytics-/Ads-/ID-Evidence vorliegt; bei späterem Einbau erneut scannen.",
                "acceptance": "Top-Fixes enthalten keinen Google-Consent-Fehlalarm ohne Google-Evidence.",
                "boundary": "Diese Bewertung gilt nur für die gespeicherte Scan-Evidence; spätere Tag-Manager-Änderungen brauchen Re-Scan.",
                "evidence_url": "https://saferpage.de/bvkj.de/top-fixes-json",
                "guide_url": "https://saferpage.de/guides/google-dienste-datenschutzfreundlich-einbinden",
                "status": "nicht erforderlich"
            },
            {
                "id": "form_coverage_review",
                "label": "Formular-Coverage gegen Startseiten-Sample abgleichen",
                "review_question": "Gibt es Formulare auf Startseite oder direkt gecrawlten Unterseiten?",
                "operator_action": "Alle 4 Formular(e) auf 4 geprüften Seite(n) mit Zweck, Pflichtfeldern, Datenschutzlink, Tracking und Referrer-Kontext prüfen.",
                "acceptance": "Formularzweck, Pflichtfelder, Datenschutzhinweis und Consent-/Tracking-Kontext sind pro Formularseite nachvollziehbar.",
                "boundary": "SaferPage sendet keine Formulare ab und kennt keine internen Rechtsgrundlagen oder nachgelagerte Verarbeitung. Die Zählung basiert auf gespeicherter Crawl- und Formular-Evidence.",
                "evidence_url": "https://saferpage.de/abdeckung/bvkj.de/export",
                "guide_url": "https://saferpage.de/guides/formulare-datenschutzkonform-absichern",
                "status": "Crawl-Evidence vorhanden"
            },
            {
                "id": "cookie_context_review",
                "label": "Cookies nach Zweck statt pauschal bewerten",
                "review_question": "Sind Cookies vor Einwilligung technisch notwendig oder Tracking/Marketing?",
                "operator_action": "Cookie-Liste mit Zweck, Anbieter, Laufzeit, Consent-Kategorie und Auslösezeitpunkt pflegen; Funktionscookies von Tracking-Cookies trennen.",
                "acceptance": "Cookie-Erklärung und CMP zeigen dieselben Kategorien; Re-Scan belegt keine ungeklärten Trackingkontakte vor Einwilligung.",
                "boundary": "Load-Balancing, Sicherheit und Consent-Speicherung können notwendig sein; die Einordnung braucht Betreiberkontext.",
                "evidence_url": "https://saferpage.de/cookies/bvkj.de",
                "guide_url": "https://saferpage.de/guides/cookie-laufzeiten-und-zwecke-pruefen",
                "status": "Baseline dokumentieren"
            },
            {
                "id": "score_wording_review",
                "label": "Score und Warntexte als Priorisierung formulieren",
                "review_question": "Wird aus dem automatischen Score ein pauschales Seriositäts- oder Rechtsurteil?",
                "operator_action": "Report-Quality-Smoke, Kurzreport und Management-Text prüfen: harte Aussagen wie zertifiziert, rechtssicher oder grundsätzlich gefährlich vermeiden.",
                "acceptance": "Bericht trennt Beobachtung, Betreibermaßnahme, Grenze und Re-Scan; keine nicht belegten Zertifikats- oder Rechtsclaims.",
                "boundary": "Score ist eine technische Priorisierung und kein abschließendes Urteil über Rechtmäßigkeit, Seriosität oder Sicherheit.",
                "evidence_url": "https://saferpage.de/evidence/report-quality-smoke.json",
                "guide_url": "https://saferpage.de/methodik",
                "status": "immer prüfen"
            },
            {
                "id": "statement_boundary_review",
                "label": "Aussage-Ampel und Claim-Grenzen übernehmen",
                "review_question": "Trennt der Report klar zwischen automatisch belegter Evidence, manueller Betreiberprüfung und Aussagen, die nicht behauptet werden dürfen?",
                "operator_action": "Aussage-Ampel im Report prüfen und in internen Tickets übernehmen: automatisch belegt, manuell prüfen und nicht behaupten getrennt dokumentieren.",
                "acceptance": "Fix-Tickets, Betreiberfreigabe und Re-Scan-Notiz enthalten keine DSGVO-Freigabe, kein pauschales Seriositätsurteil und keine nicht belegten Sicherheitsclaims.",
                "boundary": "Die Aussage-Ampel ist eine Kommunikations- und Abnahmehilfe; sie ersetzt keine Rechtsberatung, keine Betreiberfreigabe und keine vollständige Prüfung hinter Login, Paywall oder Geoblocking.",
                "evidence_url": "https://saferpage.de/bvkj.de",
                "guide_url": "https://saferpage.de/methodik",
                "status": "immer prüfen"
            }
        ],
        "metrics": {
            "row_count": 6,
            "acceptance_count": 6,
            "boundary_count": 6,
            "evidence_url_count": 6,
            "guide_url_count": 6,
            "privacy_relevant_domain_count": 0,
            "pre_consent_cookie_count": 0,
            "form_count": 4,
            "form_page_count": 4,
            "google_evidence_count": 0
        }
    },
    "evidence_first_boundary": {
        "available": true,
        "summary": "Fix-Guides trennen Scan-Evidence, Betreiberkontext und Nicht-behaupten-Grenzen, bevor Betreiber Tickets umsetzen oder externe Aussagen ableiten.",
        "measured_evidence": [
            {
                "id": "report_scan_facts",
                "label": "Gespeicherter Kurzreport",
                "evidence": "Scan-ID, Zeitpunkt, Score, Befunde, Screenshot, HTTP/TLS/Header und direkte Test-URLs.",
                "url": "https://saferpage.de/bvkj.de"
            },
            {
                "id": "crawl_form_coverage",
                "label": "Formular-Coverage",
                "evidence": "Crawl-Evidence: 4 Formular(e) auf 4 geprüften Seite(n).",
                "url": "https://saferpage.de/abdeckung/bvkj.de/export"
            },
            {
                "id": "browser_contacts",
                "label": "Browserkontakte und Cookies",
                "evidence": "43 Request(s), 0 Drittanbieter-Domain(s), 0 Cookie(s) vor Einwilligung.",
                "url": "https://saferpage.de/cookies/bvkj.de"
            },
            {
                "id": "google_applicability",
                "label": "Google-Consent-Anwendbarkeit",
                "evidence": "Keine GTM-/Analytics-/Ads-/ID-Evidence im gespeicherten Lauf; kein Google-Consent-Mode-Fix ohne neue Evidence.",
                "url": "https://saferpage.de/bvkj.de/top-fixes-json"
            }
        ],
        "operator_context_not_scanned": [
            "Rechtsgrundlagen, Zwecke, Pflichtfelder, Löschfristen und Empfänger je Formular.",
            "Interne Systeme, CRM-/Support-Flüsse, Login-, Checkout-, Paywall- und nachgelagerte Verarbeitung.",
            "AVV/DPA, TOMs, Transfer Impact Assessments, Anbieterakten und interne Freigaben.",
            "Spätere CMP-, Tag-Manager-, Release- oder Content-Änderungen nach dem gespeicherten Scan."
        ],
        "do_not_claim": [
            "Keine DSGVO-Konformität, Rechtsfreigabe oder Zertifizierung behaupten.",
            "Keinen Google-Consent-Mode-Fehler behaupten, wenn keine Google-Tag-Evidence vorliegt.",
            "Keine fehlende Betreibertransparenz als Tatsache behaupten, wenn Consent-Wall, Paywall, Login oder Geoblocking den Scan begrenzen.",
            "Keine Formularübermittlung, Zahlungsprüfung oder Backend-Validierung behaupten; SaferPage sendet keine Formulare ab."
        ],
        "metrics": {
            "measured_evidence_count": 4,
            "operator_context_count": 4,
            "do_not_claim_count": 4,
            "form_count": 4,
            "form_page_count": 4,
            "google_consent_required": 0,
            "scan_limit_present": 0
        },
        "claim_boundary": "Diese Betreiberseite ist ein Umsetzungs- und Review-Playbook. Konkrete Findings bleiben an Scan-Evidence gebunden; allgemeine Betreiberaufgaben sind Kontext und müssen fachlich freigegeben werden.",
        "guide_url": "https://saferpage.de/guides/betreiber-datenschutz-checkliste",
        "report_quality_url": "https://saferpage.de/evidence/report-quality-smoke.json"
    },
    "phases": [
        {
            "id": "triage",
            "label": "Triage",
            "timebox": "0-48 Stunden",
            "action": "Hoch priorisierte Befunde reproduzieren, Owner bestätigen, Exportpaket sichern."
        },
        {
            "id": "fix",
            "label": "Fix umsetzen",
            "timebox": "0-14 Tage",
            "action": "Consent-, Anbieter-, Notice-, Cookie-, Formular- oder Header-Änderungen umsetzen und versionieren."
        },
        {
            "id": "content",
            "label": "Nutzertexte synchronisieren",
            "timebox": "parallel",
            "action": "Datenschutzhinweis, Cookie-Erklärung, Anbieterregister und TrustHub an reale Technik anpassen."
        },
        {
            "id": "rescan",
            "label": "Re-Scan und Freigabe",
            "timebox": "nach Deployment",
            "action": "Erstaufruf, Ablehnen, Akzeptieren, GPC, Mobilansicht und priorisierte Unterseiten erneut prüfen."
        }
    ],
    "links": {
        "fix_guides": "https://saferpage.de/fix-guides/bvkj.de",
        "json": "https://saferpage.de/fix-guides/bvkj.de/export",
        "csv": "https://saferpage.de/fix-guides/bvkj.de/export-csv",
        "markdown": "https://saferpage.de/fix-guides/bvkj.de/playbook-md",
        "tickets_html": "https://saferpage.de/fix-guides/bvkj.de/tickets",
        "tickets_json": "https://saferpage.de/fix-guides/bvkj.de/tickets-json",
        "tickets_csv": "https://saferpage.de/fix-guides/bvkj.de/tickets-csv",
        "tickets_markdown": "https://saferpage.de/fix-guides/bvkj.de/tickets-md",
        "tickets_delivery_json": "https://saferpage.de/fix-guides/bvkj.de/tickets-delivery-json",
        "tickets_delivery_csv": "https://saferpage.de/fix-guides/bvkj.de/tickets-delivery-csv",
        "findings": "https://saferpage.de/befunde/bvkj.de",
        "operator_board": "https://saferpage.de/betreiber/bvkj.de",
        "privacy_hub": "https://saferpage.de/datenschutz-hub/bvkj.de",
        "scan_operations": "https://saferpage.de/scanbetrieb/bvkj.de",
        "guides_index": "https://saferpage.de/guides",
        "report": "https://saferpage.de/bvkj.de"
    },
    "competitor_references": [
        {
            "title": "Cookiebot Scan Report",
            "url": "https://support.cookiebot.com/hc/en-us/articles/5007079527580-Understanding-the-scan-report",
            "note": "Scanreports verbinden Cookie-/Prior-Consent-Befunde mit Betreiberaktionen."
        },
        {
            "title": "Usercentrics Handling Trackers",
            "url": "https://support.usercentrics.com/hc/en-us/articles/18579668393372-Handling-trackers",
            "note": "Tracker-Ergebnisse werden gemappt, blockiert oder bewusst manuell verwaltet."
        },
        {
            "title": "Osano Compliance Check",
            "url": "https://www.osano.com/features/compliance-check",
            "note": "Compliance Checks priorisieren Lücken und geben Hinweise zur schnellen Behebung."
        }
    ],
    "disclaimer": "Automatisch aus SaferPage-Scan-Evidenz und Betreiber-Guides abgeleitet. Betreiber müssen Umsetzung, Rechtsgrundlagen, interne Systeme und Re-Scan-Nachweise fachlich freigeben."
}
