{
    "schema": "https://saferpage.de/schemas/operator-fix-guide-package.v1",
    "generated_at": "2026-06-12T23:37:23+00:00",
    "domain": "intern.gsj-berlin.de",
    "available": true,
    "scan": {
        "id": "e42f477f-bdf0-4fc2-96cf-63a9bd5f4fa4",
        "checked_at": "2026-06-12 07:10:38.197478+02"
    },
    "summary": "intern.gsj-berlin.de: 5 priorisierte Betreiber-Guide(s) aus 18 Befund(en).",
    "metrics": {
        "issue_count": 18,
        "guide_count": 5,
        "high_priority_count": 9,
        "medium_priority_count": 1,
        "tracker_task_count": 1,
        "remediation_ticket_count": 19,
        "remediation_ticket_fingerprint_count": 19,
        "remediation_ticket_duplicate_count": 0,
        "high_ticket_count": 9,
        "acceptance_count": 15,
        "source_count": 10,
        "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,
        "quality_review_form_count": 9,
        "quality_review_form_page_count": 4,
        "evidence_first_measured_count": 4,
        "evidence_first_operator_context_count": 4,
        "evidence_first_do_not_claim_count": 4
    },
    "guide_streams": [
        {
            "guide_slug": "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": "hoch",
            "impact_score": 86,
            "phase": "0-7 Tage",
            "area": "Consent & Tracking",
            "owner": "Marketing/IT/Datenschutz",
            "effort": "mittel",
            "issue_count": 5,
            "issues": [
                {
                    "id": "pre_consent_nonessential_cookies",
                    "area": "privacy",
                    "title": "Möglicherweise nicht notwendige Cookies vor Einwilligung",
                    "priority": "hoch",
                    "impact_score": 86,
                    "evidence": "",
                    "operator_action": "Prüfen, ob diese Cookies technisch notwendig sind oder erst nach Einwilligung gesetzt werden dürfen.",
                    "owner": "Website-Betrieb/Datenschutz",
                    "guide_slug": "tracking-und-consent-reparieren",
                    "guide_url": "https://saferpage.de/guides/tracking-und-consent-reparieren",
                    "source": "finding"
                },
                {
                    "id": "consent_no_reject_option",
                    "area": "privacy",
                    "title": "Cookie-Hinweis ohne klare Ablehnen-Option",
                    "priority": "hoch",
                    "impact_score": 86,
                    "evidence": "",
                    "operator_action": "Ablehnen sollte genauso leicht auffindbar sein wie Akzeptieren.",
                    "owner": "Website-Betrieb/Datenschutz",
                    "guide_slug": "tracking-und-consent-reparieren",
                    "guide_url": "https://saferpage.de/guides/tracking-und-consent-reparieren",
                    "source": "finding"
                },
                {
                    "id": "consent_accept_only",
                    "area": "privacy",
                    "title": "Consent wirkt wie Nur-Akzeptieren",
                    "priority": "hoch",
                    "impact_score": 86,
                    "evidence": "",
                    "operator_action": "Cookie-Auswahl und Ablehnen-Option sichtbar anbieten.",
                    "owner": "Website-Betrieb/Datenschutz",
                    "guide_slug": "tracking-und-consent-reparieren",
                    "guide_url": "https://saferpage.de/guides/tracking-und-consent-reparieren",
                    "source": "finding"
                },
                {
                    "id": "module_privacy_consent",
                    "area": "Audit-Modul",
                    "title": "Datenschutz, Cookies & Consent",
                    "priority": "hoch",
                    "impact_score": 50,
                    "evidence": "0 Tracking-Script(s), 1 Cookie(s) vor Einwilligung, 0 Tracking-Cookie(s), Ablehnen-Option: nein, Consent-Audit: 62.",
                    "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": 38,
                    "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": "security-header-setzen",
            "guide_url": "https://saferpage.de/guides/security-header-setzen",
            "title": "Security-Header setzen",
            "intro": "Sicherheitsheader reduzieren typische Browserrisiken und verbessern den technischen Eindruck der Website.",
            "priority": "hoch",
            "impact_score": 86,
            "phase": "0-7 Tage",
            "area": "Web Security",
            "owner": "IT/Security",
            "effort": "mittel",
            "issue_count": 10,
            "issues": [
                {
                    "id": "missing_hsts",
                    "area": "security_headers",
                    "title": "HSTS fehlt",
                    "priority": "hoch",
                    "impact_score": 86,
                    "evidence": "",
                    "operator_action": "Header `strict-transport-security` setzen und nach Deployment erneut prüfen.",
                    "owner": "Website-Betrieb/Datenschutz",
                    "guide_slug": "security-header-setzen",
                    "guide_url": "https://saferpage.de/guides/security-header-setzen",
                    "source": "finding"
                },
                {
                    "id": "missing_csp",
                    "area": "security_headers",
                    "title": "Content-Security-Policy fehlt",
                    "priority": "hoch",
                    "impact_score": 86,
                    "evidence": "",
                    "operator_action": "Header `content-security-policy` setzen und nach Deployment erneut prüfen.",
                    "owner": "Website-Betrieb/Datenschutz",
                    "guide_slug": "security-header-setzen",
                    "guide_url": "https://saferpage.de/guides/security-header-setzen",
                    "source": "finding"
                },
                {
                    "id": "missing_x_frame_options",
                    "area": "security_headers",
                    "title": "X-Frame-Options fehlt",
                    "priority": "hoch",
                    "impact_score": 86,
                    "evidence": "",
                    "operator_action": "Header `x-frame-options` setzen und nach Deployment erneut prüfen.",
                    "owner": "Website-Betrieb/Datenschutz",
                    "guide_slug": "security-header-setzen",
                    "guide_url": "https://saferpage.de/guides/security-header-setzen",
                    "source": "finding"
                },
                {
                    "id": "module_security_tls",
                    "area": "Audit-Modul",
                    "title": "Sicherheit, TLS & Header",
                    "priority": "hoch",
                    "impact_score": 54,
                    "evidence": "1 Infrastruktur-Hinweis(e), Security-Header: 1/9 vorhanden, 8 fehlen, externe Skript-Hosts: 0.",
                    "operator_action": "HTTPS, Zertifikat, HSTS, CSP, zentrale Security-Header und externe Skriptquellen sauber konfigurieren.",
                    "owner": "Website-Betrieb/Datenschutz",
                    "guide_slug": "security-header-setzen",
                    "guide_url": "https://saferpage.de/guides/security-header-setzen",
                    "source": "audit_module"
                },
                {
                    "id": "security_header_gap",
                    "area": "Security",
                    "title": "Security-Header, Referrer-Policy und Browser-Schutz setzen",
                    "priority": "hoch",
                    "impact_score": 54,
                    "evidence": "1 von 9 wichtigen Security-Headern vorhanden, 1 korrekt bewertet. Keine Content-Security-Policy gefunden.",
                    "operator_action": "Befund mit Betreiber-Guide beheben und danach erneut scannen.",
                    "owner": "IT/Security",
                    "guide_slug": "security-header-setzen",
                    "guide_url": "https://saferpage.de/guides/security-header-setzen",
                    "source": "security_header"
                },
                {
                    "id": "missing_cross_origin_embedder_policy",
                    "area": "security_headers",
                    "title": "Cross-Origin-Embedder-Policy fehlt",
                    "priority": "niedrig",
                    "impact_score": 55,
                    "evidence": "",
                    "operator_action": "Header `cross-origin-embedder-policy` setzen und nach Deployment erneut prüfen.",
                    "owner": "Website-Betrieb/Datenschutz",
                    "guide_slug": "security-header-setzen",
                    "guide_url": "https://saferpage.de/guides/security-header-setzen",
                    "source": "finding"
                },
                {
                    "id": "missing_cross_origin_opener_policy",
                    "area": "security_headers",
                    "title": "Cross-Origin-Opener-Policy fehlt",
                    "priority": "niedrig",
                    "impact_score": 55,
                    "evidence": "",
                    "operator_action": "Header `cross-origin-opener-policy` setzen und nach Deployment erneut prüfen.",
                    "owner": "Website-Betrieb/Datenschutz",
                    "guide_slug": "security-header-setzen",
                    "guide_url": "https://saferpage.de/guides/security-header-setzen",
                    "source": "finding"
                },
                {
                    "id": "missing_cross_origin_resource_policy",
                    "area": "security_headers",
                    "title": "Cross-Origin-Resource-Policy fehlt",
                    "priority": "niedrig",
                    "impact_score": 55,
                    "evidence": "",
                    "operator_action": "Header `cross-origin-resource-policy` setzen und nach Deployment erneut prüfen.",
                    "owner": "Website-Betrieb/Datenschutz",
                    "guide_slug": "security-header-setzen",
                    "guide_url": "https://saferpage.de/guides/security-header-setzen",
                    "source": "finding"
                },
                {
                    "id": "missing_referrer_policy",
                    "area": "security_headers",
                    "title": "Referrer-Policy fehlt",
                    "priority": "niedrig",
                    "impact_score": 55,
                    "evidence": "",
                    "operator_action": "Header `referrer-policy` setzen und nach Deployment erneut prüfen.",
                    "owner": "Website-Betrieb/Datenschutz",
                    "guide_slug": "security-header-setzen",
                    "guide_url": "https://saferpage.de/guides/security-header-setzen",
                    "source": "finding"
                },
                {
                    "id": "missing_permissions_policy",
                    "area": "security_headers",
                    "title": "Permissions-Policy fehlt",
                    "priority": "niedrig",
                    "impact_score": 55,
                    "evidence": "",
                    "operator_action": "Header `permissions-policy` setzen und nach Deployment erneut prüfen.",
                    "owner": "Website-Betrieb/Datenschutz",
                    "guide_slug": "security-header-setzen",
                    "guide_url": "https://saferpage.de/guides/security-header-setzen",
                    "source": "finding"
                }
            ],
            "guide_steps": [
                "Setzen Sie HSTS nach erfolgreichem HTTPS-Test.",
                "Nutzen Sie Content-Security-Policy, X-Frame-Options, X-Content-Type-Options und Referrer-Policy.",
                "Starten Sie mit einer vorsichtigen CSP im Report-Only-Modus und verschärfen Sie sie schrittweise.",
                "Entfernen Sie unsafe-inline, unsafe-eval, Wildcards und reine http:-Quellen aus script-src, sobald Nonces, Hashes oder konkrete Hosts funktionieren.",
                "Setzen Sie base-uri und object-src restriktiv, typischerweise base-uri self und object-src none.",
                "Nutzen Sie frame-ancestors oder X-Frame-Options, damit fremde Seiten die Website nicht ungewollt einbetten."
            ],
            "fix_steps": [
                {
                    "phase": "Befund reproduzieren",
                    "owner": "IT/Security",
                    "action": "SaferPage-Report, betroffene URL, Consent-Zustand und Request-/Cookie-/Header-Evidence sichern.",
                    "evidence": "Scan-ID, Screenshot, Exportzeile, betroffener Guide-Link."
                },
                {
                    "phase": "Ursache beheben",
                    "owner": "IT/Security",
                    "action": "Konfiguration, Tag, Inhalt, Anbieter, Header oder Formular gemäß Guide ändern und Änderung versionieren.",
                    "evidence": "Ticket, Konfigurationsdiff, CMS-/Tag-Manager-Änderung, Freigabe."
                },
                {
                    "phase": "Nutzertext aktualisieren",
                    "owner": "Datenschutz/Content",
                    "action": "Datenschutzhinweis, Cookie-Liste, Anbieterregister oder Trust-Dokumentation an die reale Technik anpassen.",
                    "evidence": "Versionierter Text, Änderungsdatum, Verantwortlicher."
                },
                {
                    "phase": "Re-Test und Abschluss",
                    "owner": "Compliance/IT",
                    "action": "Header, TLS, CSP und Referrer-Policy nach Deployment erneut scannen.",
                    "evidence": "Nginx/Apache/CDN-Konfiguration, Header-Export, Rollback-Plan."
                }
            ],
            "acceptance": [
                "Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.",
                "Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.",
                "Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe."
            ],
            "evidence_exports": [
                "JSON/CSV/XLSX-Export für Rohbefunde und Audit-Tabellen",
                "ZIP-Nachweispaket mit Screenshot, Evidence Manifest und Guide-Verweisen",
                "Trust Documentation Library für öffentliche, sanitisierte und interne Nachweise"
            ],
            "retest": "Header, TLS, CSP und Referrer-Policy nach Deployment erneut scannen.",
            "sources": [
                {
                    "label": "BSI IT-Grundschutz APP.3.1 Webanwendungen",
                    "url": "https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Grundschutz/IT-GS-Kompendium_Einzel_PDFs_2023/06_APP_Anwendungen/APP_3_1_Webanwendungen_und_Webservices_Edition_2023.pdf?__blob=publicationFile&v=3"
                },
                {
                    "label": "BSI IT-Grundschutz APP.3.2 Webserver",
                    "url": "https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Grundschutz/IT-GS-Kompendium_Einzel_PDFs_2023/06_APP_Anwendungen/APP_3_2_Webserver_Edition_2023.pdf?__blob=publicationFile&v=3"
                },
                {
                    "label": "MDN: Content Security Policy",
                    "url": "https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP"
                }
            ]
        },
        {
            "guide_slug": "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": "niedrig",
            "impact_score": 55,
            "phase": "quartalsweise",
            "area": "Cookie Security",
            "owner": "IT/Webbetrieb",
            "effort": "klein",
            "issue_count": 1,
            "issues": [
                {
                    "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": "datenschutzerklaerung-verbessern",
            "guide_url": "https://saferpage.de/guides/datenschutzerklaerung-verbessern",
            "title": "Datenschutzerklärung verbessern",
            "intro": "Eine gute Datenschutzerklärung erklärt Ihren Besuchern 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 Besucher 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": "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 Ihre Besucher 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_consent_accept_only",
            "type": "befund_fix",
            "title": "Consent wirkt wie Nur-Akzeptieren",
            "priority": "hoch",
            "owner": "Website-Betrieb/Datenschutz",
            "area": "privacy",
            "evidence": "",
            "action": "Cookie-Auswahl und Ablehnen-Option sichtbar anbieten.",
            "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/intern.gsj-berlin.de",
            "rescan_url": "https://saferpage.de/scanbetrieb/intern.gsj-berlin.de",
            "source": "finding",
            "sla": "7 Tage",
            "fingerprint": "f67e852d283ebfa6e73b5b240420c23f0c868d495e041161dfc163c23212c422",
            "duplicate_group_count": 1,
            "deduplicated_duplicate_count": 0
        },
        {
            "id": "remediation_missing_csp",
            "type": "befund_fix",
            "title": "Content-Security-Policy fehlt",
            "priority": "hoch",
            "owner": "Website-Betrieb/Datenschutz",
            "area": "security_headers",
            "evidence": "",
            "action": "Header `content-security-policy` setzen und nach Deployment erneut prüfen.",
            "acceptance_criteria": [
                "Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.",
                "Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.",
                "Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe."
            ],
            "guide_url": "https://saferpage.de/guides/security-header-setzen",
            "evidence_url": "https://saferpage.de/befunde/intern.gsj-berlin.de",
            "rescan_url": "https://saferpage.de/scanbetrieb/intern.gsj-berlin.de",
            "source": "finding",
            "sla": "7 Tage",
            "fingerprint": "26b9534373385506779b7bf81348f3c4f7ed18b999de66aa039091b4f75dc857",
            "duplicate_group_count": 1
        },
        {
            "id": "remediation_consent_no_reject_option",
            "type": "befund_fix",
            "title": "Cookie-Hinweis ohne klare Ablehnen-Option",
            "priority": "hoch",
            "owner": "Website-Betrieb/Datenschutz",
            "area": "privacy",
            "evidence": "",
            "action": "Ablehnen sollte genauso leicht auffindbar sein wie Akzeptieren.",
            "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/intern.gsj-berlin.de",
            "rescan_url": "https://saferpage.de/scanbetrieb/intern.gsj-berlin.de",
            "source": "finding",
            "sla": "7 Tage",
            "fingerprint": "27a86cb5cf3525feb6702f8840ff80617206433e9f9954b5cd0a2ce5a616dea4",
            "duplicate_group_count": 1
        },
        {
            "id": "remediation_module_privacy_consent",
            "type": "befund_fix",
            "title": "Datenschutz, Cookies & Consent",
            "priority": "hoch",
            "owner": "Website-Betrieb/Datenschutz",
            "area": "Audit-Modul",
            "evidence": "0 Tracking-Script(s), 1 Cookie(s) vor Einwilligung, 0 Tracking-Cookie(s), Ablehnen-Option: nein, Consent-Audit: 62.",
            "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/intern.gsj-berlin.de",
            "rescan_url": "https://saferpage.de/scanbetrieb/intern.gsj-berlin.de",
            "source": "audit_module",
            "sla": "7 Tage",
            "fingerprint": "cb12c531edc6386fe68c51af8dec53bdec31d424fcf2f4a031f4a34eb777ad9c",
            "duplicate_group_count": 1
        },
        {
            "id": "remediation_missing_hsts",
            "type": "befund_fix",
            "title": "HSTS fehlt",
            "priority": "hoch",
            "owner": "Website-Betrieb/Datenschutz",
            "area": "security_headers",
            "evidence": "",
            "action": "Header `strict-transport-security` setzen und nach Deployment erneut prüfen.",
            "acceptance_criteria": [
                "Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.",
                "Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.",
                "Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe."
            ],
            "guide_url": "https://saferpage.de/guides/security-header-setzen",
            "evidence_url": "https://saferpage.de/befunde/intern.gsj-berlin.de",
            "rescan_url": "https://saferpage.de/scanbetrieb/intern.gsj-berlin.de",
            "source": "finding",
            "sla": "7 Tage",
            "fingerprint": "3fb65abf3efe6897f10e5ae5bf647ff9f352361881d76df2886d2992c43232a1",
            "duplicate_group_count": 1
        },
        {
            "id": "remediation_pre_consent_nonessential_cookies",
            "type": "befund_fix",
            "title": "Möglicherweise nicht notwendige Cookies vor Einwilligung",
            "priority": "hoch",
            "owner": "Website-Betrieb/Datenschutz",
            "area": "privacy",
            "evidence": "",
            "action": "Prüfen, ob diese Cookies technisch notwendig sind oder erst nach Einwilligung gesetzt werden dürfen.",
            "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/intern.gsj-berlin.de",
            "rescan_url": "https://saferpage.de/scanbetrieb/intern.gsj-berlin.de",
            "source": "finding",
            "sla": "7 Tage",
            "fingerprint": "3f415510b9616f1bb895ea9225e46ea729b3654b4509b001154eb67301da0a4b",
            "duplicate_group_count": 1
        },
        {
            "id": "remediation_security_header_gap",
            "type": "befund_fix",
            "title": "Security-Header, Referrer-Policy und Browser-Schutz setzen",
            "priority": "hoch",
            "owner": "IT/Security",
            "area": "Security",
            "evidence": "1 von 9 wichtigen Security-Headern vorhanden, 1 korrekt bewertet. Keine Content-Security-Policy gefunden.",
            "action": "Befund mit Betreiber-Guide beheben und danach erneut scannen.",
            "acceptance_criteria": [
                "Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.",
                "Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.",
                "Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe."
            ],
            "guide_url": "https://saferpage.de/guides/security-header-setzen",
            "evidence_url": "https://saferpage.de/befunde/intern.gsj-berlin.de",
            "rescan_url": "https://saferpage.de/scanbetrieb/intern.gsj-berlin.de",
            "source": "security_header",
            "sla": "7 Tage",
            "fingerprint": "1d6064eac12cf70d9c1dadfe9cfccce5b98040853ec753b52cc8479d0517be88",
            "duplicate_group_count": 1
        },
        {
            "id": "remediation_module_security_tls",
            "type": "befund_fix",
            "title": "Sicherheit, TLS & Header",
            "priority": "hoch",
            "owner": "Website-Betrieb/Datenschutz",
            "area": "Audit-Modul",
            "evidence": "1 Infrastruktur-Hinweis(e), Security-Header: 1/9 vorhanden, 8 fehlen, externe Skript-Hosts: 0.",
            "action": "HTTPS, Zertifikat, HSTS, CSP, zentrale Security-Header und externe Skriptquellen sauber konfigurieren.",
            "acceptance_criteria": [
                "Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.",
                "Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.",
                "Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe."
            ],
            "guide_url": "https://saferpage.de/guides/security-header-setzen",
            "evidence_url": "https://saferpage.de/befunde/intern.gsj-berlin.de",
            "rescan_url": "https://saferpage.de/scanbetrieb/intern.gsj-berlin.de",
            "source": "audit_module",
            "sla": "7 Tage",
            "fingerprint": "412d98743b01900776a80e0fba672556492f994841721e2d7cfb193ef2dd960c",
            "duplicate_group_count": 1
        },
        {
            "id": "remediation_missing_x_frame_options",
            "type": "befund_fix",
            "title": "X-Frame-Options fehlt",
            "priority": "hoch",
            "owner": "Website-Betrieb/Datenschutz",
            "area": "security_headers",
            "evidence": "",
            "action": "Header `x-frame-options` setzen und nach Deployment erneut prüfen.",
            "acceptance_criteria": [
                "Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.",
                "Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.",
                "Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe."
            ],
            "guide_url": "https://saferpage.de/guides/security-header-setzen",
            "evidence_url": "https://saferpage.de/befunde/intern.gsj-berlin.de",
            "rescan_url": "https://saferpage.de/scanbetrieb/intern.gsj-berlin.de",
            "source": "finding",
            "sla": "7 Tage",
            "fingerprint": "95d06f7bf99062d3f6f48594588ea751438c5da51a4845c11c05df15e2ab34dd",
            "duplicate_group_count": 1
        },
        {
            "id": "mapping_cookie_2ce2a4b12fcdca67b1e3ef50be1d95e2",
            "type": "service_mapping",
            "title": "2ce2a4b12fcdca67b1e3ef50be1d95e2",
            "priority": "mittel",
            "owner": "Marketing/IT/Datenschutz",
            "area": "Tracker- und Service-Mapping",
            "evidence": "intern.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/intern.gsj-berlin.de",
            "rescan_url": "https://saferpage.de/scanbetrieb/intern.gsj-berlin.de",
            "source": "tracker_mapping",
            "sla": "30 Tage",
            "fingerprint": "5f1f02d9ad6b71ea75455eb33cd0c5d71dede0937bddb49e63d4babb14641cab",
            "duplicate_group_count": 1
        },
        {
            "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/intern.gsj-berlin.de",
            "rescan_url": "https://saferpage.de/scanbetrieb/intern.gsj-berlin.de",
            "source": "consent_audit",
            "sla": "30 Tage",
            "fingerprint": "a4552e0c30fc795a4c90c45c2ce54577d0908787e4fa676c3e21edf7241885e2",
            "duplicate_group_count": 1
        },
        {
            "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/intern.gsj-berlin.de",
            "rescan_url": "https://saferpage.de/scanbetrieb/intern.gsj-berlin.de",
            "source": "finding",
            "sla": "quartalsweise",
            "fingerprint": "6fedc14a5b8aac282cbc984ac338ac26a6679c112c3ba4f46d963d51341a7f6e",
            "duplicate_group_count": 1
        },
        {
            "id": "remediation_missing_cross_origin_embedder_policy",
            "type": "befund_fix",
            "title": "Cross-Origin-Embedder-Policy fehlt",
            "priority": "niedrig",
            "owner": "Website-Betrieb/Datenschutz",
            "area": "security_headers",
            "evidence": "",
            "action": "Header `cross-origin-embedder-policy` setzen und nach Deployment erneut prüfen.",
            "acceptance_criteria": [
                "Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.",
                "Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.",
                "Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe."
            ],
            "guide_url": "https://saferpage.de/guides/security-header-setzen",
            "evidence_url": "https://saferpage.de/befunde/intern.gsj-berlin.de",
            "rescan_url": "https://saferpage.de/scanbetrieb/intern.gsj-berlin.de",
            "source": "finding",
            "sla": "quartalsweise",
            "fingerprint": "c8d36072d81b63f9103982e29875cec130c514c20f982ffe6c35212cdfa0cee0",
            "duplicate_group_count": 1
        },
        {
            "id": "remediation_missing_cross_origin_opener_policy",
            "type": "befund_fix",
            "title": "Cross-Origin-Opener-Policy fehlt",
            "priority": "niedrig",
            "owner": "Website-Betrieb/Datenschutz",
            "area": "security_headers",
            "evidence": "",
            "action": "Header `cross-origin-opener-policy` setzen und nach Deployment erneut prüfen.",
            "acceptance_criteria": [
                "Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.",
                "Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.",
                "Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe."
            ],
            "guide_url": "https://saferpage.de/guides/security-header-setzen",
            "evidence_url": "https://saferpage.de/befunde/intern.gsj-berlin.de",
            "rescan_url": "https://saferpage.de/scanbetrieb/intern.gsj-berlin.de",
            "source": "finding",
            "sla": "quartalsweise",
            "fingerprint": "65a210c101429beda44d9f7dd2dea20bd40109b87783a2562d331f8251ffa332",
            "duplicate_group_count": 1
        },
        {
            "id": "remediation_missing_cross_origin_resource_policy",
            "type": "befund_fix",
            "title": "Cross-Origin-Resource-Policy fehlt",
            "priority": "niedrig",
            "owner": "Website-Betrieb/Datenschutz",
            "area": "security_headers",
            "evidence": "",
            "action": "Header `cross-origin-resource-policy` setzen und nach Deployment erneut prüfen.",
            "acceptance_criteria": [
                "Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.",
                "Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.",
                "Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe."
            ],
            "guide_url": "https://saferpage.de/guides/security-header-setzen",
            "evidence_url": "https://saferpage.de/befunde/intern.gsj-berlin.de",
            "rescan_url": "https://saferpage.de/scanbetrieb/intern.gsj-berlin.de",
            "source": "finding",
            "sla": "quartalsweise",
            "fingerprint": "d51f4623a35c3ae334a5dd59a43e462672f815eac1b654d30d0f2e2a74564176",
            "duplicate_group_count": 1
        },
        {
            "id": "remediation_missing_permissions_policy",
            "type": "befund_fix",
            "title": "Permissions-Policy fehlt",
            "priority": "niedrig",
            "owner": "Website-Betrieb/Datenschutz",
            "area": "security_headers",
            "evidence": "",
            "action": "Header `permissions-policy` setzen und nach Deployment erneut prüfen.",
            "acceptance_criteria": [
                "Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.",
                "Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.",
                "Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe."
            ],
            "guide_url": "https://saferpage.de/guides/security-header-setzen",
            "evidence_url": "https://saferpage.de/befunde/intern.gsj-berlin.de",
            "rescan_url": "https://saferpage.de/scanbetrieb/intern.gsj-berlin.de",
            "source": "finding",
            "sla": "quartalsweise",
            "fingerprint": "801cc01c5ceeafba6584ae88b9416fcb3428613a45932329f1a56f23c62277b5",
            "duplicate_group_count": 1
        },
        {
            "id": "remediation_missing_referrer_policy",
            "type": "befund_fix",
            "title": "Referrer-Policy fehlt",
            "priority": "niedrig",
            "owner": "Website-Betrieb/Datenschutz",
            "area": "security_headers",
            "evidence": "",
            "action": "Header `referrer-policy` setzen und nach Deployment erneut prüfen.",
            "acceptance_criteria": [
                "Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.",
                "Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.",
                "Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe."
            ],
            "guide_url": "https://saferpage.de/guides/security-header-setzen",
            "evidence_url": "https://saferpage.de/befunde/intern.gsj-berlin.de",
            "rescan_url": "https://saferpage.de/scanbetrieb/intern.gsj-berlin.de",
            "source": "finding",
            "sla": "quartalsweise",
            "fingerprint": "7ea210c04d4624f285ff9df75bf59e7fee93391b5416651ff18fd63633410aa7",
            "duplicate_group_count": 1
        },
        {
            "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/intern.gsj-berlin.de",
            "rescan_url": "https://saferpage.de/scanbetrieb/intern.gsj-berlin.de",
            "source": "finding",
            "sla": "quartalsweise",
            "fingerprint": "03e0f34d535c54ae396d317fd64d8a9ff47d7ed3ebe3ef0704f40f5ac25ca790",
            "duplicate_group_count": 1
        },
        {
            "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/intern.gsj-berlin.de",
            "rescan_url": "https://saferpage.de/scanbetrieb/intern.gsj-berlin.de",
            "source": "finding",
            "sla": "quartalsweise",
            "fingerprint": "1cc7bab9b170c330bee3aa0d9ad58aae9824ca337681a8bded8d75c252100d67",
            "duplicate_group_count": 1
        }
    ],
    "tracker_mapping_tasks": [
        {
            "id": "cookie_2ce2a4b12fcdca67b1e3ef50be1d95e2",
            "label": "2ce2a4b12fcdca67b1e3ef50be1d95e2",
            "type": "cookie_storage",
            "status": "unknown",
            "evidence": "intern.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/intern.gsj-berlin.de"
        }
    ],
    "platform_playbooks": [
        {
            "id": "joomla",
            "platform": "Joomla",
            "summary": "Joomla-Templates, Erweiterungen und Cookie-Plugins nach Updates gegen echte Browserkontakte prüfen.",
            "steps": [
                "Joomla Core, Templates und Erweiterungen aktualisieren; veraltete Erweiterungen entfernen.",
                "Template-Overrides und Module nach externen Skripten, Fonts, Maps, Videos, Captchas und Pixeln prüfen.",
                "Cookie-/Consent-Erweiterung so konfigurieren, dass nicht notwendige Dienste erst nach Einwilligung laden.",
                "Security-Header und HTTPS-Weiterleitungen im Hosting/Webserver setzen und Re-Scan ausführen."
            ],
            "acceptance": [
                "Template-/Extension-Änderungen dokumentiert.",
                "Consent-Test zeigt keine vorzeitigen Trackingkontakte.",
                "Fix-Guides sind abgearbeitet."
            ],
            "owner": "Webbetrieb/IT/Datenschutz",
            "guide_url": "https://saferpage.de/guides/cms-plugin-patchstand-nachweisen",
            "technology_evidence_url": "https://saferpage.de/technik/intern.gsj-berlin.de/export",
            "rescan_url": "https://saferpage.de/?url=intern.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/intern.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 GTM, gtag, Analytics, Ads oder eine Google-Tracking-ID wirklich gesehen?",
                "operator_action": "Keinen Google-Consent-Mode-Fix verlangen, solange keine GTM-/Analytics-/Ads-/ID-Evidence vorliegt; bei späterem Einbau erneut scannen.",
                "acceptance": "Top-Fixes enthalten keinen Google-Consent-Fehlalarm ohne Google-Evidence.",
                "boundary": "Diese Bewertung gilt nur für die gespeicherte Scan-Evidence; spätere Tag-Manager-Änderungen brauchen Re-Scan.",
                "evidence_url": "https://saferpage.de/intern.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 9 Formular(e) auf 4 geprüften Seite(n) mit Zweck, Pflichtfeldern, Datenschutzlink, Tracking und Referrer-Kontext prüfen.",
                "acceptance": "Formularzweck, Pflichtfelder, Datenschutzhinweis und Consent-/Tracking-Kontext sind pro Formularseite nachvollziehbar.",
                "boundary": "SaferPage sendet keine Formulare ab und kennt keine internen Rechtsgrundlagen oder nachgelagerte Verarbeitung. Die Zählung basiert auf gespeicherter Crawl- und Formular-Evidence.",
                "evidence_url": "https://saferpage.de/abdeckung/intern.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/intern.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/intern.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": 9,
            "form_page_count": 4,
            "google_evidence_count": 0
        }
    },
    "evidence_first_boundary": {
        "available": true,
        "summary": "Fix-Guides trennen Scan-Evidence, Betreiberkontext und Nicht-behaupten-Grenzen, bevor Betreiber Tickets umsetzen oder externe Aussagen ableiten.",
        "measured_evidence": [
            {
                "id": "report_scan_facts",
                "label": "Gespeicherter Kurzreport",
                "evidence": "Scan-ID, Zeitpunkt, Score, Befunde, Screenshot, HTTP/TLS/Header und direkte Test-URLs.",
                "url": "https://saferpage.de/intern.gsj-berlin.de"
            },
            {
                "id": "crawl_form_coverage",
                "label": "Formular-Coverage",
                "evidence": "Crawl-Evidence: 9 Formular(e) auf 4 geprüften Seite(n).",
                "url": "https://saferpage.de/abdeckung/intern.gsj-berlin.de/export"
            },
            {
                "id": "browser_contacts",
                "label": "Browserkontakte und Cookies",
                "evidence": "22 Request(s), 0 Drittanbieter-Domain(s), 1 Cookie(s) vor Einwilligung.",
                "url": "https://saferpage.de/cookies/intern.gsj-berlin.de"
            },
            {
                "id": "google_applicability",
                "label": "Google-Consent-Anwendbarkeit",
                "evidence": "Keine GTM-/Analytics-/Ads-/ID-Evidence im gespeicherten Lauf; kein Google-Consent-Mode-Fix ohne neue Evidence.",
                "url": "https://saferpage.de/intern.gsj-berlin.de/top-fixes-json"
            }
        ],
        "operator_context_not_scanned": [
            "Rechtsgrundlagen, Zwecke, Pflichtfelder, Löschfristen und Empfänger je Formular.",
            "Interne Systeme, CRM-/Support-Flüsse, Login-, Checkout-, Paywall- und nachgelagerte Verarbeitung.",
            "AVV/DPA, TOMs, Transfer Impact Assessments, Anbieterakten und interne Freigaben.",
            "Spätere CMP-, Tag-Manager-, Release- oder Content-Änderungen nach dem gespeicherten Scan."
        ],
        "do_not_claim": [
            "Keine DSGVO-Konformität, Rechtsfreigabe oder Zertifizierung behaupten.",
            "Keinen Google-Consent-Mode-Fehler behaupten, wenn keine Google-Tag-Evidence vorliegt.",
            "Keine fehlende Betreibertransparenz als Tatsache behaupten, wenn Consent-Wall, Paywall, Login oder Geoblocking den Scan begrenzen.",
            "Keine Formularübermittlung, Zahlungsprüfung oder Backend-Validierung behaupten; SaferPage sendet keine Formulare ab."
        ],
        "metrics": {
            "measured_evidence_count": 4,
            "operator_context_count": 4,
            "do_not_claim_count": 4,
            "form_count": 9,
            "form_page_count": 4,
            "google_consent_required": 0,
            "scan_limit_present": 0
        },
        "claim_boundary": "Diese Betreiberseite ist ein Umsetzungs- und Review-Playbook. Konkrete Findings bleiben an Scan-Evidence gebunden; allgemeine Betreiberaufgaben sind Kontext und müssen fachlich freigegeben werden.",
        "guide_url": "https://saferpage.de/guides/betreiber-datenschutz-checkliste",
        "report_quality_url": "https://saferpage.de/evidence/report-quality-smoke.json"
    },
    "phases": [
        {
            "id": "triage",
            "label": "Triage",
            "timebox": "0-48 Stunden",
            "action": "Hoch priorisierte Befunde reproduzieren, Owner bestätigen, Exportpaket sichern."
        },
        {
            "id": "fix",
            "label": "Fix umsetzen",
            "timebox": "0-14 Tage",
            "action": "Consent-, Anbieter-, Notice-, Cookie-, Formular- oder Header-Änderungen umsetzen und versionieren."
        },
        {
            "id": "content",
            "label": "Nutzertexte synchronisieren",
            "timebox": "parallel",
            "action": "Datenschutzhinweis, Cookie-Erklärung, Anbieterregister und TrustHub an reale Technik anpassen."
        },
        {
            "id": "rescan",
            "label": "Re-Scan und Freigabe",
            "timebox": "nach Deployment",
            "action": "Erstaufruf, Ablehnen, Akzeptieren, GPC, Mobilansicht und priorisierte Unterseiten erneut prüfen."
        }
    ],
    "links": {
        "fix_guides": "https://saferpage.de/fix-guides/intern.gsj-berlin.de",
        "json": "https://saferpage.de/fix-guides/intern.gsj-berlin.de/export",
        "csv": "https://saferpage.de/fix-guides/intern.gsj-berlin.de/export-csv",
        "markdown": "https://saferpage.de/fix-guides/intern.gsj-berlin.de/playbook-md",
        "tickets_html": "https://saferpage.de/fix-guides/intern.gsj-berlin.de/tickets",
        "tickets_json": "https://saferpage.de/fix-guides/intern.gsj-berlin.de/tickets-json",
        "tickets_csv": "https://saferpage.de/fix-guides/intern.gsj-berlin.de/tickets-csv",
        "tickets_markdown": "https://saferpage.de/fix-guides/intern.gsj-berlin.de/tickets-md",
        "tickets_delivery_json": "https://saferpage.de/fix-guides/intern.gsj-berlin.de/tickets-delivery-json",
        "tickets_delivery_csv": "https://saferpage.de/fix-guides/intern.gsj-berlin.de/tickets-delivery-csv",
        "findings": "https://saferpage.de/befunde/intern.gsj-berlin.de",
        "operator_board": "https://saferpage.de/betreiber/intern.gsj-berlin.de",
        "privacy_hub": "https://saferpage.de/datenschutz-hub/intern.gsj-berlin.de",
        "scan_operations": "https://saferpage.de/scanbetrieb/intern.gsj-berlin.de",
        "guides_index": "https://saferpage.de/guides",
        "report": "https://saferpage.de/intern.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."
}
