{
    "schema": "https://saferpage.de/schemas/operator-fix-guide-package.v1",
    "generated_at": "2026-06-12T01:03:42+00:00",
    "domain": "gsj-berlin.de",
    "available": true,
    "scan": {
        "id": "2307737a-1a9d-476d-8bd9-40f3391f8d98",
        "checked_at": "2026-06-12 02:41:09.979277+02"
    },
    "summary": "gsj-berlin.de: 9 priorisierte Betreiber-Guide(s) aus 25 Befund(en).",
    "metrics": {
        "issue_count": 25,
        "guide_count": 9,
        "high_priority_count": 8,
        "medium_priority_count": 6,
        "tracker_task_count": 1,
        "remediation_ticket_count": 26,
        "high_ticket_count": 8,
        "acceptance_count": 27,
        "source_count": 17,
        "platform_playbook_count": 1,
        "platform_playbook_step_count": 4,
        "platform_playbook_acceptance_count": 3,
        "platform_playbook_boundary_count": 1,
        "platform_playbook_evidence_url_count": 1,
        "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
    },
    "guide_streams": [
        {
            "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": "cookies-sicher-konfigurieren",
            "guide_url": "https://saferpage.de/guides/cookies-sicher-konfigurieren",
            "title": "Cookies sicher konfigurieren",
            "intro": "Cookies sollten technisch sauber gesetzt sein und nicht mehr Daten preisgeben als nötig.",
            "priority": "hoch",
            "impact_score": 86,
            "phase": "0-7 Tage",
            "area": "Cookie Security",
            "owner": "IT/Webbetrieb",
            "effort": "klein",
            "issue_count": 2,
            "issues": [
                {
                    "id": "cookie_missing_secure",
                    "area": "privacy",
                    "title": "Cookie ohne Secure-Flag",
                    "priority": "hoch",
                    "impact_score": 86,
                    "evidence": "",
                    "operator_action": "Cookies über HTTPS mit Secure-Flag setzen.",
                    "owner": "Website-Betrieb/Datenschutz",
                    "guide_slug": "cookies-sicher-konfigurieren",
                    "guide_url": "https://saferpage.de/guides/cookies-sicher-konfigurieren",
                    "source": "finding"
                },
                {
                    "id": "cookie_missing_samesite",
                    "area": "privacy",
                    "title": "Cookie ohne SameSite-Attribut",
                    "priority": "niedrig",
                    "impact_score": 55,
                    "evidence": "",
                    "operator_action": "SameSite=Lax oder SameSite=Strict setzen, falls fachlich möglich.",
                    "owner": "Website-Betrieb/Datenschutz",
                    "guide_slug": "cookies-sicher-konfigurieren",
                    "guide_url": "https://saferpage.de/guides/cookies-sicher-konfigurieren",
                    "source": "finding"
                }
            ],
            "guide_steps": [
                "Setzen Sie Secure für Cookies, die nur über HTTPS übertragen werden sollen.",
                "Setzen Sie SameSite=Lax oder SameSite=Strict, wenn fachlich möglich.",
                "Trennen Sie notwendige Session-Cookies von Tracking- oder Marketing-Cookies."
            ],
            "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": "Cookie-Attribute Secure, SameSite und HttpOnly erneut prüfen.",
                    "evidence": "Set-Cookie-Belege, Konfigurationsdiff, Re-Scan."
                }
            ],
            "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": "Cookie-Attribute Secure, SameSite und HttpOnly erneut prüfen.",
            "sources": [
                {
                    "label": "BfDI: Cookies und Tracking-Technologien",
                    "url": "https://www.bfdi.bund.de/DE/Buerger/Inhalte/Telemedien/Cookies.html"
                },
                {
                    "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": "EDPB Guidelines 2/2023 ePrivacy Art. 5(3)",
                    "url": "https://www.edpb.europa.eu/system/files/2024-10/edpb_guidelines_202302_technical_scope_art_53_eprivacydirective_v2_en_0.pdf"
                }
            ]
        },
        {
            "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": 11,
            "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": "missing_x_content_type_options",
                    "area": "security_headers",
                    "title": "X-Content-Type-Options fehlt",
                    "priority": "hoch",
                    "impact_score": 86,
                    "evidence": "",
                    "operator_action": "Header `x-content-type-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": 66,
                    "evidence": "1 Infrastruktur-Hinweis(e), Security-Header: 0/9 vorhanden, 9 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": 66,
                    "evidence": "0 von 9 wichtigen Security-Headern vorhanden, 0 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": "13 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": "28 Bild(er), 1 Formularfeld(er), 4 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": "tracking-und-consent-reparieren",
            "guide_url": "https://saferpage.de/guides/tracking-und-consent-reparieren",
            "title": "Tracking und Consent reparieren",
            "intro": "Tracking, Werbung und nicht notwendige Cookies sollten erst nach klarer Einwilligung geladen werden.",
            "priority": "mittel",
            "impact_score": 28,
            "phase": "7-30 Tage",
            "area": "Consent & Tracking",
            "owner": "Marketing/IT/Datenschutz",
            "effort": "mittel",
            "issue_count": 2,
            "issues": [
                {
                    "id": "module_privacy_consent",
                    "area": "Audit-Modul",
                    "title": "Datenschutz, Cookies & Consent",
                    "priority": "mittel",
                    "impact_score": 28,
                    "evidence": "0 Tracking-Script(s), 1 Cookie(s) vor Einwilligung, 0 Tracking-Cookie(s), Ablehnen-Option: ja, Consent-Audit: 72.",
                    "operator_action": "Tracking, Werbung und nicht notwendige Cookies vor Zustimmung blockieren und verständlich erklären.",
                    "owner": "Website-Betrieb/Datenschutz",
                    "guide_slug": "tracking-und-consent-reparieren",
                    "guide_url": "https://saferpage.de/guides/tracking-und-consent-reparieren",
                    "source": "audit_module"
                },
                {
                    "id": "consent_preconsent_gap",
                    "area": "Consent & Tracking",
                    "title": "Tracking, Cookies oder Drittanbieter vor Einwilligung reparieren",
                    "priority": "mittel",
                    "impact_score": 28,
                    "evidence": "Consent ist teilweise erkennbar, aber einzelne Punkte sollten Betreiber nachpruefen.",
                    "operator_action": "Befund mit Betreiber-Guide beheben und danach erneut scannen.",
                    "owner": "Marketing/IT",
                    "guide_slug": "tracking-und-consent-reparieren",
                    "guide_url": "https://saferpage.de/guides/tracking-und-consent-reparieren",
                    "source": "consent_audit"
                }
            ],
            "guide_steps": [
                "Blockieren Sie Analytics-, Ads-, Pixel- und Remarketing-Skripte bis zur aktiven Zustimmung.",
                "Nutzen Sie CMP-Autoblocking oder neutrale Script-/Iframe-Attribute wie type=\"text/plain\" beziehungsweise data-cookieblock-src, damit Quellen nicht vor Consent laden.",
                "Bieten Sie Ablehnen und Akzeptieren gleich sichtbar an; vermeiden Sie reine Akzeptieren-Banner.",
                "Dokumentieren Sie Anbieter, Zwecke, Rechtsgrundlagen und Widerruf in der Datenschutzerklärung.",
                "Testen Sie die Startseite im Inkognito-Fenster ohne Zustimmung und prüfen Sie, ob Trackingkontakte ausbleiben."
            ],
            "fix_steps": [
                {
                    "phase": "Befund reproduzieren",
                    "owner": "Marketing/IT/Datenschutz",
                    "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/Datenschutz",
                    "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": "Erstaufruf, Ablehnen, Akzeptieren und GPC getrennt scannen.",
                    "evidence": "Consent-Screenshot, Cookie-Tabelle, Request-Liste, CMP-Konfiguration."
                }
            ],
            "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": "Erstaufruf, Ablehnen, Akzeptieren und GPC getrennt scannen.",
            "sources": [
                {
                    "label": "BfDI: Cookies und Tracking-Technologien",
                    "url": "https://www.bfdi.bund.de/DE/Buerger/Inhalte/Telemedien/Cookies.html"
                },
                {
                    "label": "DSK Orientierungshilfe Digitale Dienste",
                    "url": "https://www.datenschutzkonferenz-online.de/media/oh/OH_Digitale_Dienste.pdf"
                },
                {
                    "label": "DSK Orientierungshilfe Telemedien",
                    "url": "https://www.datenschutzkonferenz-online.de/media/oh/20221205_oh_Telemedien_2021_Version_1_1_Vorlage_104_DSK_final.pdf"
                },
                {
                    "label": "EDPB Guidelines 05/2020 Consent",
                    "url": "https://www.edpb.europa.eu/sites/default/files/files/file1/edpb_guidelines_202005_consent_en.pdf"
                },
                {
                    "label": "EDPB Guidelines 2/2023 ePrivacy Art. 5(3)",
                    "url": "https://www.edpb.europa.eu/system/files/2024-10/edpb_guidelines_202302_technical_scope_art_53_eprivacydirective_v2_en_0.pdf"
                }
            ]
        },
        {
            "guide_slug": "pii-und-url-datenlecks-vermeiden",
            "guide_url": "https://saferpage.de/guides/pii-und-url-datenlecks-vermeiden",
            "title": "PII- und URL-Datenlecks vermeiden",
            "intro": "Personenbezogene Daten, Tokens und Formularwerte sollten nicht in URLs, Referrern, Logs oder Tracking-Tags landen.",
            "priority": "niedrig",
            "impact_score": 55,
            "phase": "quartalsweise",
            "area": "PII Leakage",
            "owner": "Webentwicklung/IT",
            "effort": "mittel",
            "issue_count": 1,
            "issues": [
                {
                    "id": "pii_sensitive_link_query",
                    "area": "privacy",
                    "title": "Links mit sensiblen Query-Parametern erkannt",
                    "priority": "niedrig",
                    "impact_score": 55,
                    "evidence": "",
                    "operator_action": "Sensible Parameter aus Links entfernen oder durch serverseitige, kurzlebige Zustände ersetzen.",
                    "owner": "Website-Betrieb/Datenschutz",
                    "guide_slug": "pii-und-url-datenlecks-vermeiden",
                    "guide_url": "https://saferpage.de/guides/pii-und-url-datenlecks-vermeiden",
                    "source": "finding"
                }
            ],
            "guide_steps": [
                "Senden Sie Formulare mit personenbezogenen Daten per POST und vermeiden Sie GET-Parameter wie email, phone, name, token oder customer_id.",
                "Entfernen Sie personenbezogene Werte aus internen Links, Weiterleitungen, Suchparametern und Bestätigungsseiten.",
                "Blockieren Sie Analytics-, Ads- und Session-Replay-Tags auf Formularseiten bis zur Einwilligung und übergeben Sie keine Formularwerte an Tags.",
                "Prüfen Sie externe Formularziele auf Zweck, Anbieter, Region, Auftragsverarbeitung und Datenschutzhinweise.",
                "Konfigurieren Sie Referrer-Policy, Logging und Monitoring so, dass sensible Query-Strings nicht unnötig gespeichert werden."
            ],
            "fix_steps": [
                {
                    "phase": "Befund reproduzieren",
                    "owner": "Webentwicklung/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": "Webentwicklung/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": "URLs, Referrer, Logs und Drittanbieter-Requests auf personenbezogene Werte prüfen.",
                    "evidence": "Parameter-Inventar, Referrer-Policy, Logging-Konfiguration, Re-Scan."
                }
            ],
            "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": "URLs, Referrer, Logs und Drittanbieter-Requests auf personenbezogene Werte prüfen.",
            "sources": [
                {
                    "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"
                },
                {
                    "label": "EDPB Guidelines 2/2023 ePrivacy Art. 5(3)",
                    "url": "https://www.edpb.europa.eu/system/files/2024-10/edpb_guidelines_202302_technical_scope_art_53_eprivacydirective_v2_en_0.pdf"
                },
                {
                    "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"
                }
            ]
        },
        {
            "guide_slug": "datenschutzerklaerung-verbessern",
            "guide_url": "https://saferpage.de/guides/datenschutzerklaerung-verbessern",
            "title": "Datenschutzerklärung verbessern",
            "intro": "Eine gute Datenschutzerklärung erklärt für Nutzer verständlich, welche Daten verarbeitet werden und warum.",
            "priority": "niedrig",
            "impact_score": 55,
            "phase": "quartalsweise",
            "area": "Transparenz",
            "owner": "Datenschutz/Content",
            "effort": "mittel",
            "issue_count": 1,
            "issues": [
                {
                    "id": "privacy_policy_update_date_missing",
                    "area": "privacy",
                    "title": "Stand der Datenschutzerklärung nicht klar erkennbar",
                    "priority": "niedrig",
                    "impact_score": 55,
                    "evidence": "",
                    "operator_action": "Ergänzen Sie ein gut sichtbares Stand- oder Aktualisierungsdatum und prüfen Sie die Erklärung nach technischen Änderungen.",
                    "owner": "Website-Betrieb/Datenschutz",
                    "guide_slug": "datenschutzerklaerung-verbessern",
                    "guide_url": "https://saferpage.de/guides/datenschutzerklaerung-verbessern",
                    "source": "finding"
                }
            ],
            "guide_steps": [
                "Verlinken Sie die Datenschutzerklärung gut sichtbar im Footer und in Formularnähe.",
                "Nennen Sie Zwecke, Rechtsgrundlagen, Empfänger/Drittanbieter, Speicherdauer und Betroffenenrechte.",
                "Erklären Sie Cookies, Tracking, Kontaktformulare, Newsletter und Zahlungsanbieter konkret statt nur allgemein.",
                "Pflegen Sie ein sichtbares Stand- oder Aktualisierungsdatum und prüfen Sie die Erklärung nach neuen Tools, Cookies oder Formularen erneut.",
                "Nennen Sie einen Datenschutzkontakt oder den Datenschutzbeauftragten-Hinweis so, dass Nutzer Anfragen ohne Suchen stellen können.",
                "Strukturieren Sie lange Absätze mit klaren Zwischenüberschriften und kurzen Sätzen, damit auch nicht-juristische Nutzer die Hinweise verstehen."
            ],
            "fix_steps": [
                {
                    "phase": "Befund reproduzieren",
                    "owner": "Datenschutz/Content",
                    "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": "Datenschutz/Content",
                    "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": "Datenschutzhinweis gegen Cookies, Anbieter, Formulare und Zwecke abgleichen.",
                    "evidence": "Versionierter Datenschutzhinweis, Änderungsdatum, Freigabeprotokoll."
                }
            ],
            "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": "Datenschutzhinweis gegen Cookies, Anbieter, Formulare und Zwecke abgleichen.",
            "sources": [
                {
                    "label": "DSK Orientierungshilfe Digitale Dienste",
                    "url": "https://www.datenschutzkonferenz-online.de/media/oh/OH_Digitale_Dienste.pdf"
                },
                {
                    "label": "DSK Orientierungshilfe Telemedien",
                    "url": "https://www.datenschutzkonferenz-online.de/media/oh/20221205_oh_Telemedien_2021_Version_1_1_Vorlage_104_DSK_final.pdf"
                },
                {
                    "label": "BfDI: Cookies und Tracking-Technologien",
                    "url": "https://www.bfdi.bund.de/DE/Buerger/Inhalte/Telemedien/Cookies.html"
                }
            ]
        },
        {
            "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 Nutzer 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"
                }
            ]
        },
        {
            "guide_slug": "performance-und-mobile-usability-verbessern",
            "guide_url": "https://saferpage.de/guides/performance-und-mobile-usability-verbessern",
            "title": "Performance und mobile Nutzbarkeit verbessern",
            "intro": "Langsame oder mobil schlecht nutzbare Seiten wirken für Nutzer weniger vertrauenswürdig.",
            "priority": "niedrig",
            "impact_score": 55,
            "phase": "quartalsweise",
            "area": "Performance & Mobile",
            "owner": "Webentwicklung/UX",
            "effort": "mittel",
            "issue_count": 1,
            "issues": [
                {
                    "id": "too_many_render_blocking_assets",
                    "area": "performance",
                    "title": "Viele potenziell blockierende Assets",
                    "priority": "niedrig",
                    "impact_score": 55,
                    "evidence": "",
                    "operator_action": "Skripte/CSS bündeln, defer/async nutzen und kritisches CSS priorisieren.",
                    "owner": "Website-Betrieb/Datenschutz",
                    "guide_slug": "performance-und-mobile-usability-verbessern",
                    "guide_url": "https://saferpage.de/guides/performance-und-mobile-usability-verbessern",
                    "source": "finding"
                }
            ],
            "guide_steps": [
                "Aktivieren Sie Brotli oder gzip für HTML, CSS und JavaScript.",
                "Reduzieren Sie blockierende Skripte, unnötige Bibliotheken und große Inline-Daten.",
                "Setzen Sie den Viewport-Meta-Tag und testen Sie wichtige Seiten auf Mobilgeräten."
            ],
            "fix_steps": [
                {
                    "phase": "Befund reproduzieren",
                    "owner": "Webentwicklung/UX",
                    "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": "Webentwicklung/UX",
                    "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": "Mobilansicht, Asset-Größen und Ladeverhalten erneut prüfen.",
                    "evidence": "Performance-Messung, Asset-Liste, Mobile-Screenshot."
                }
            ],
            "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": "Mobilansicht, Asset-Größen und Ladeverhalten erneut prüfen.",
            "sources": [
                {
                    "label": "Google Search Central: Page Experience",
                    "url": "https://developers.google.com/search/docs/appearance/page-experience"
                },
                {
                    "label": "Google Search Central: Core Web Vitals",
                    "url": "https://developers.google.com/search/docs/appearance/core-web-vitals"
                }
            ]
        }
    ],
    "remediation_tickets": [
        {
            "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/gsj-berlin.de",
            "rescan_url": "https://saferpage.de/scanbetrieb/gsj-berlin.de",
            "source": "finding",
            "sla": "7 Tage"
        },
        {
            "id": "remediation_cookie_missing_secure",
            "type": "befund_fix",
            "title": "Cookie ohne Secure-Flag",
            "priority": "hoch",
            "owner": "Website-Betrieb/Datenschutz",
            "area": "privacy",
            "evidence": "",
            "action": "Cookies über HTTPS mit Secure-Flag setzen.",
            "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/cookies-sicher-konfigurieren",
            "evidence_url": "https://saferpage.de/befunde/gsj-berlin.de",
            "rescan_url": "https://saferpage.de/scanbetrieb/gsj-berlin.de",
            "source": "finding",
            "sla": "7 Tage"
        },
        {
            "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/gsj-berlin.de",
            "rescan_url": "https://saferpage.de/scanbetrieb/gsj-berlin.de",
            "source": "finding",
            "sla": "7 Tage"
        },
        {
            "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/gsj-berlin.de",
            "rescan_url": "https://saferpage.de/scanbetrieb/gsj-berlin.de",
            "source": "finding",
            "sla": "7 Tage"
        },
        {
            "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": "0 von 9 wichtigen Security-Headern vorhanden, 0 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/gsj-berlin.de",
            "rescan_url": "https://saferpage.de/scanbetrieb/gsj-berlin.de",
            "source": "security_header",
            "sla": "7 Tage"
        },
        {
            "id": "remediation_module_security_tls",
            "type": "befund_fix",
            "title": "Sicherheit, TLS & Header",
            "priority": "hoch",
            "owner": "Website-Betrieb/Datenschutz",
            "area": "Audit-Modul",
            "evidence": "1 Infrastruktur-Hinweis(e), Security-Header: 0/9 vorhanden, 9 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/gsj-berlin.de",
            "rescan_url": "https://saferpage.de/scanbetrieb/gsj-berlin.de",
            "source": "audit_module",
            "sla": "7 Tage"
        },
        {
            "id": "remediation_missing_x_content_type_options",
            "type": "befund_fix",
            "title": "X-Content-Type-Options fehlt",
            "priority": "hoch",
            "owner": "Website-Betrieb/Datenschutz",
            "area": "security_headers",
            "evidence": "",
            "action": "Header `x-content-type-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/gsj-berlin.de",
            "rescan_url": "https://saferpage.de/scanbetrieb/gsj-berlin.de",
            "source": "finding",
            "sla": "7 Tage"
        },
        {
            "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/gsj-berlin.de",
            "rescan_url": "https://saferpage.de/scanbetrieb/gsj-berlin.de",
            "source": "finding",
            "sla": "7 Tage"
        },
        {
            "id": "remediation_module_accessibility_usability",
            "type": "befund_fix",
            "title": "Barrierefreiheit & Usability",
            "priority": "mittel",
            "owner": "Website-Betrieb/Datenschutz",
            "area": "Audit-Modul",
            "evidence": "13 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/gsj-berlin.de",
            "rescan_url": "https://saferpage.de/scanbetrieb/gsj-berlin.de",
            "source": "audit_module",
            "sla": "30 Tage"
        },
        {
            "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": "28 Bild(er), 1 Formularfeld(er), 4 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/gsj-berlin.de",
            "rescan_url": "https://saferpage.de/scanbetrieb/gsj-berlin.de",
            "source": "accessibility",
            "sla": "30 Tage"
        },
        {
            "id": "remediation_module_privacy_consent",
            "type": "befund_fix",
            "title": "Datenschutz, Cookies & Consent",
            "priority": "mittel",
            "owner": "Website-Betrieb/Datenschutz",
            "area": "Audit-Modul",
            "evidence": "0 Tracking-Script(s), 1 Cookie(s) vor Einwilligung, 0 Tracking-Cookie(s), Ablehnen-Option: ja, Consent-Audit: 72.",
            "action": "Tracking, Werbung und nicht notwendige Cookies vor Zustimmung blockieren und verständlich erklären.",
            "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/tracking-und-consent-reparieren",
            "evidence_url": "https://saferpage.de/befunde/gsj-berlin.de",
            "rescan_url": "https://saferpage.de/scanbetrieb/gsj-berlin.de",
            "source": "audit_module",
            "sla": "30 Tage"
        },
        {
            "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/gsj-berlin.de",
            "rescan_url": "https://saferpage.de/scanbetrieb/gsj-berlin.de",
            "source": "google_consent",
            "sla": "30 Tage"
        },
        {
            "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/gsj-berlin.de",
            "rescan_url": "https://saferpage.de/scanbetrieb/gsj-berlin.de",
            "source": "audit_module",
            "sla": "30 Tage"
        },
        {
            "id": "mapping_cookie_phpsessid",
            "type": "service_mapping",
            "title": "PHPSESSID",
            "priority": "mittel",
            "owner": "Marketing/IT/Datenschutz",
            "area": "Tracker- und Service-Mapping",
            "evidence": "gsj-berlin.de",
            "action": "Zweck, Laufzeit, Anbieter und Consent-Erfordernis in Cookie-Erklärung und CMP pflegen.",
            "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/cookie-laufzeiten-und-zwecke-pruefen",
            "evidence_url": "https://saferpage.de/cookies/gsj-berlin.de",
            "rescan_url": "https://saferpage.de/scanbetrieb/gsj-berlin.de",
            "source": "tracker_mapping",
            "sla": "30 Tage"
        },
        {
            "id": "remediation_consent_preconsent_gap",
            "type": "befund_fix",
            "title": "Tracking, Cookies oder Drittanbieter vor Einwilligung reparieren",
            "priority": "mittel",
            "owner": "Marketing/IT",
            "area": "Consent & Tracking",
            "evidence": "Consent ist teilweise erkennbar, aber einzelne Punkte sollten Betreiber nachpruefen.",
            "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/tracking-und-consent-reparieren",
            "evidence_url": "https://saferpage.de/befunde/gsj-berlin.de",
            "rescan_url": "https://saferpage.de/scanbetrieb/gsj-berlin.de",
            "source": "consent_audit",
            "sla": "30 Tage"
        },
        {
            "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/gsj-berlin.de",
            "rescan_url": "https://saferpage.de/scanbetrieb/gsj-berlin.de",
            "source": "finding",
            "sla": "quartalsweise"
        },
        {
            "id": "remediation_cookie_missing_samesite",
            "type": "befund_fix",
            "title": "Cookie ohne SameSite-Attribut",
            "priority": "niedrig",
            "owner": "Website-Betrieb/Datenschutz",
            "area": "privacy",
            "evidence": "",
            "action": "SameSite=Lax oder SameSite=Strict setzen, falls fachlich möglich.",
            "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/cookies-sicher-konfigurieren",
            "evidence_url": "https://saferpage.de/befunde/gsj-berlin.de",
            "rescan_url": "https://saferpage.de/scanbetrieb/gsj-berlin.de",
            "source": "finding",
            "sla": "quartalsweise"
        },
        {
            "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/gsj-berlin.de",
            "rescan_url": "https://saferpage.de/scanbetrieb/gsj-berlin.de",
            "source": "finding",
            "sla": "quartalsweise"
        },
        {
            "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/gsj-berlin.de",
            "rescan_url": "https://saferpage.de/scanbetrieb/gsj-berlin.de",
            "source": "finding",
            "sla": "quartalsweise"
        },
        {
            "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/gsj-berlin.de",
            "rescan_url": "https://saferpage.de/scanbetrieb/gsj-berlin.de",
            "source": "finding",
            "sla": "quartalsweise"
        },
        {
            "id": "remediation_pii_sensitive_link_query",
            "type": "befund_fix",
            "title": "Links mit sensiblen Query-Parametern erkannt",
            "priority": "niedrig",
            "owner": "Website-Betrieb/Datenschutz",
            "area": "privacy",
            "evidence": "",
            "action": "Sensible Parameter aus Links entfernen oder durch serverseitige, kurzlebige Zustände ersetzen.",
            "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/pii-und-url-datenlecks-vermeiden",
            "evidence_url": "https://saferpage.de/befunde/gsj-berlin.de",
            "rescan_url": "https://saferpage.de/scanbetrieb/gsj-berlin.de",
            "source": "finding",
            "sla": "quartalsweise"
        },
        {
            "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/gsj-berlin.de",
            "rescan_url": "https://saferpage.de/scanbetrieb/gsj-berlin.de",
            "source": "finding",
            "sla": "quartalsweise"
        },
        {
            "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/gsj-berlin.de",
            "rescan_url": "https://saferpage.de/scanbetrieb/gsj-berlin.de",
            "source": "finding",
            "sla": "quartalsweise"
        },
        {
            "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/gsj-berlin.de",
            "rescan_url": "https://saferpage.de/scanbetrieb/gsj-berlin.de",
            "source": "finding",
            "sla": "quartalsweise"
        },
        {
            "id": "remediation_privacy_policy_update_date_missing",
            "type": "befund_fix",
            "title": "Stand der Datenschutzerklärung nicht klar erkennbar",
            "priority": "niedrig",
            "owner": "Website-Betrieb/Datenschutz",
            "area": "privacy",
            "evidence": "",
            "action": "Ergänzen Sie ein gut sichtbares Stand- oder Aktualisierungsdatum und prüfen Sie die Erklärung nach technischen Änderungen.",
            "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/datenschutzerklaerung-verbessern",
            "evidence_url": "https://saferpage.de/befunde/gsj-berlin.de",
            "rescan_url": "https://saferpage.de/scanbetrieb/gsj-berlin.de",
            "source": "finding",
            "sla": "quartalsweise"
        },
        {
            "id": "remediation_too_many_render_blocking_assets",
            "type": "befund_fix",
            "title": "Viele potenziell blockierende Assets",
            "priority": "niedrig",
            "owner": "Website-Betrieb/Datenschutz",
            "area": "performance",
            "evidence": "",
            "action": "Skripte/CSS bündeln, defer/async nutzen und kritisches CSS priorisieren.",
            "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/performance-und-mobile-usability-verbessern",
            "evidence_url": "https://saferpage.de/befunde/gsj-berlin.de",
            "rescan_url": "https://saferpage.de/scanbetrieb/gsj-berlin.de",
            "source": "finding",
            "sla": "quartalsweise"
        }
    ],
    "tracker_mapping_tasks": [
        {
            "id": "cookie_phpsessid",
            "label": "PHPSESSID",
            "type": "cookie_storage",
            "status": "necessary",
            "evidence": "gsj-berlin.de",
            "action": "Zweck, Laufzeit, Anbieter und Consent-Erfordernis in Cookie-Erklärung und CMP pflegen.",
            "guide_slug": "cookie-laufzeiten-und-zwecke-pruefen",
            "guide_url": "https://saferpage.de/guides/cookie-laufzeiten-und-zwecke-pruefen",
            "target_url": "https://saferpage.de/cookies/gsj-berlin.de"
        }
    ],
    "platform_playbooks": [
        {
            "id": "wordpress",
            "platform": "WordPress",
            "summary": "Core, Theme, Plugins, Consent-Plugin, Tag Manager und Cache gemeinsam prüfen.",
            "steps": [
                "WordPress Core, aktive Themes und Plugins in Staging aktualisieren; ungenutzte Plugins entfernen.",
                "Consent-/Cookie-Plugin mit Erstaufruf, Ablehnen, Akzeptieren und GPC gegen SaferPage testen.",
                "Google Fonts, Maps, YouTube, reCAPTCHA, Analytics und Pixel in Theme, Page Builder und Tag Manager suchen und vor Consent blockieren.",
                "Security-Header, HSTS, Referrer-Policy und CSP im Hosting, Webserver oder Security-Plugin setzen und Cache leeren."
            ],
            "acceptance": [
                "Keine neuen Trackingkontakte vor Consent.",
                "Plugin-/Theme-Versionen sind dokumentiert.",
                "Re-Scan aktualisiert Kurzreport, Technik-Center und Fix-Guides."
            ],
            "owner": "Webbetrieb/IT/Datenschutz",
            "guide_url": "https://saferpage.de/guides/cms-plugin-patchstand-nachweisen",
            "technology_evidence_url": "https://saferpage.de/technik/gsj-berlin.de/export",
            "rescan_url": "https://saferpage.de/?url=gsj-berlin.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/gsj-berlin.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 Google-Tag, Google-Domain oder Google-Tracking-ID wirklich gesehen?",
                "operator_action": "Keinen Google-Consent-Mode-Fix verlangen, solange keine Google-Tag-/Domain-/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/gsj-berlin.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 5 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.",
                "evidence_url": "https://saferpage.de/abdeckung/gsj-berlin.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/gsj-berlin.de",
                "guide_url": "https://saferpage.de/guides/cookie-laufzeiten-und-zwecke-pruefen",
                "status": "klassifizieren"
            },
            {
                "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/gsj-berlin.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": 1,
            "form_count": 5,
            "google_evidence_count": 0
        }
    },
    "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/gsj-berlin.de",
        "json": "https://saferpage.de/fix-guides/gsj-berlin.de/export",
        "csv": "https://saferpage.de/fix-guides/gsj-berlin.de/export-csv",
        "markdown": "https://saferpage.de/fix-guides/gsj-berlin.de/playbook-md",
        "tickets_json": "https://saferpage.de/fix-guides/gsj-berlin.de/tickets-json",
        "tickets_csv": "https://saferpage.de/fix-guides/gsj-berlin.de/tickets-csv",
        "tickets_markdown": "https://saferpage.de/fix-guides/gsj-berlin.de/tickets-md",
        "tickets_delivery_json": "https://saferpage.de/fix-guides/gsj-berlin.de/tickets-delivery-json",
        "tickets_delivery_csv": "https://saferpage.de/fix-guides/gsj-berlin.de/tickets-delivery-csv",
        "findings": "https://saferpage.de/befunde/gsj-berlin.de",
        "operator_board": "https://saferpage.de/betreiber/gsj-berlin.de",
        "privacy_hub": "https://saferpage.de/datenschutz-hub/gsj-berlin.de",
        "scan_operations": "https://saferpage.de/scanbetrieb/gsj-berlin.de",
        "guides_index": "https://saferpage.de/guides",
        "report": "https://saferpage.de/gsj-berlin.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."
}
