{
    "schema": "https://saferpage.de/schemas/operator-action-plan.v1",
    "generated_at": "2026-06-08T18:01:25+00:00",
    "domain": "klausurgutachten.de",
    "scan": {
        "id": "fd0457ad-ac89-4b77-9e7e-e23395e1ae0b",
        "checked_at": "2026-06-07 14:25:06.487583+02"
    },
    "summary": "klausurgutachten.de Betreiber-Board: 8 Ticket(s), 0 sofort, 3 priorisierte Guide(s). Nach jeder Umsetzung erneut scannen; bei hoher Priorität innerhalb von 7 Tagen.",
    "status": "aktiv abarbeiten",
    "score": 68,
    "metrics": {
        "ticket_count": 8,
        "open_count": 8,
        "urgent_count": 0,
        "guide_count": 3,
        "team_count": 2,
        "scan_score": 24,
        "target_score": 40,
        "gap_to_target": 16
    },
    "links": {
        "report": "https://saferpage.de/klausurgutachten.de",
        "operator_board": "https://saferpage.de/betreiber/klausurgutachten.de",
        "json": "https://saferpage.de/betreiber/klausurgutachten.de/massnahmen",
        "csv": "https://saferpage.de/betreiber/klausurgutachten.de/massnahmen-csv",
        "tickets_markdown": "https://saferpage.de/betreiber/klausurgutachten.de/tickets",
        "consent_evidence": "https://saferpage.de/consent/klausurgutachten.de/nachweise",
        "vendor_service_cards": "https://saferpage.de/anbieter/klausurgutachten.de/servicekarten",
        "trust_center": "https://saferpage.de/trust/klausurgutachten.de",
        "guides": "https://saferpage.de/guides",
        "rescan": "https://saferpage.de/"
    },
    "tickets": [
        {
            "ticket_id": "SP-001",
            "title": "Externe Skripte ohne Subresource Integrity",
            "area": "Skript-Lieferkette",
            "owner": "Technik",
            "team": "Developer/Ops",
            "priority": "mittel",
            "priority_score": 61,
            "sla": "30_tage",
            "status": "einplanen",
            "next_step": "Externe Skripte auf Notwendigkeit, SRI und lokale Auslieferung prüfen.",
            "acceptance_criterion": "Befund ist im Wiederholungsscan behoben oder fachlich dokumentiert begründet.",
            "evidence": "Externe Skripte auf Notwendigkeit, SRI und lokale Auslieferung prüfen.",
            "guide_url": "/guides/externe-skripte-und-sri-absichern"
        },
        {
            "ticket_id": "SP-002",
            "title": "Content-Security-Policy fehlt",
            "area": "BSI/Security-Header",
            "owner": "Technik",
            "team": "Developer/Ops",
            "priority": "mittel",
            "priority_score": 53,
            "sla": "30_tage",
            "status": "einplanen",
            "next_step": "Content-Security-Policy schrittweise einführen.",
            "acceptance_criterion": "Security-Header/TLS-Check ist im Wiederholungsscan ohne kritischen Befund.",
            "evidence": "Content-Security-Policy schrittweise einführen.",
            "guide_url": "/guides/security-header-setzen"
        },
        {
            "ticket_id": "SP-003",
            "title": "Kein Impressum-Link erkannt",
            "area": "DDG/Anbieterkennzeichnung",
            "owner": "Recht/Content",
            "team": "Content/UX",
            "priority": "mittel",
            "priority_score": 53,
            "sla": "30_tage",
            "status": "einplanen",
            "next_step": "Impressum beziehungsweise Anbieterkennzeichnung sichtbar verlinken.",
            "acceptance_criterion": "Drittanbieter ist dokumentiert, rechtlich bewertet und im Scan als erwarteter Dienst nachvollziehbar.",
            "evidence": "Impressum beziehungsweise Anbieterkennzeichnung sichtbar verlinken.",
            "guide_url": "/guides/impressum-und-kontakt-sichtbar-machen"
        },
        {
            "ticket_id": "SP-004",
            "title": "Keine klare Kontaktmöglichkeit erkannt",
            "area": "DDG/Anbieterkennzeichnung",
            "owner": "Recht/Content",
            "team": "Content/UX",
            "priority": "mittel",
            "priority_score": 53,
            "sla": "30_tage",
            "status": "einplanen",
            "next_step": "Klare Kontaktmöglichkeit ergänzen.",
            "acceptance_criterion": "Drittanbieter ist dokumentiert, rechtlich bewertet und im Scan als erwarteter Dienst nachvollziehbar.",
            "evidence": "Klare Kontaktmöglichkeit ergänzen.",
            "guide_url": "/guides/impressum-und-kontakt-sichtbar-machen"
        },
        {
            "ticket_id": "SP-005",
            "title": "Cross-Origin-Embedder-Policy fehlt",
            "area": "BSI/Security-Header",
            "owner": "Technik",
            "team": "Developer/Ops",
            "priority": "niedrig",
            "priority_score": 24,
            "sla": "Backlog",
            "status": "backlog",
            "next_step": "Cross-Origin-Embedder-Policy nur nach Staging-Test setzen, weil eingebettete Drittressourcen kompatibel sein müssen.",
            "acceptance_criterion": "Security-Header/TLS-Check ist im Wiederholungsscan ohne kritischen Befund.",
            "evidence": "Cross-Origin-Embedder-Policy nur nach Staging-Test setzen, weil eingebettete Drittressourcen kompatibel sein müssen.",
            "guide_url": "/guides/security-header-setzen"
        },
        {
            "ticket_id": "SP-006",
            "title": "Cross-Origin-Opener-Policy fehlt",
            "area": "BSI/Security-Header",
            "owner": "Technik",
            "team": "Developer/Ops",
            "priority": "niedrig",
            "priority_score": 24,
            "sla": "Backlog",
            "status": "backlog",
            "next_step": "Cross-Origin-Opener-Policy vorsichtig prüfen und nach Funktionstest setzen.",
            "acceptance_criterion": "Security-Header/TLS-Check ist im Wiederholungsscan ohne kritischen Befund.",
            "evidence": "Cross-Origin-Opener-Policy vorsichtig prüfen und nach Funktionstest setzen.",
            "guide_url": "/guides/security-header-setzen"
        },
        {
            "ticket_id": "SP-007",
            "title": "Cross-Origin-Resource-Policy fehlt",
            "area": "BSI/Security-Header",
            "owner": "Technik",
            "team": "Developer/Ops",
            "priority": "niedrig",
            "priority_score": 24,
            "sla": "Backlog",
            "status": "backlog",
            "next_step": "Cross-Origin-Resource-Policy nach Ressourcenprüfung setzen, damit fremde Einbettungen begrenzt werden.",
            "acceptance_criterion": "Security-Header/TLS-Check ist im Wiederholungsscan ohne kritischen Befund.",
            "evidence": "Cross-Origin-Resource-Policy nach Ressourcenprüfung setzen, damit fremde Einbettungen begrenzt werden.",
            "guide_url": "/guides/security-header-setzen"
        },
        {
            "ticket_id": "SP-008",
            "title": "Permissions-Policy fehlt",
            "area": "BSI/Security-Header",
            "owner": "Technik",
            "team": "Developer/Ops",
            "priority": "niedrig",
            "priority_score": 24,
            "sla": "Backlog",
            "status": "backlog",
            "next_step": "Nicht benötigte Browser-APIs wie Kamera, Mikrofon und Geolocation per Header begrenzen.",
            "acceptance_criterion": "Security-Header/TLS-Check ist im Wiederholungsscan ohne kritischen Befund.",
            "evidence": "Nicht benötigte Browser-APIs wie Kamera, Mikrofon und Geolocation per Header begrenzen.",
            "guide_url": "/guides/security-header-setzen"
        }
    ],
    "tasks": [
        {
            "id": "",
            "title": "Externe Skripte ohne Subresource Integrity",
            "area": "Skript-Lieferkette",
            "priority": "mittel",
            "priority_score": 61,
            "owner": "Technik",
            "team_route": "Developer/Ops",
            "deadline": "innerhalb von 30 Tagen",
            "effort": "niedrig",
            "status": "offen",
            "action": "Externe Skripte auf Notwendigkeit, SRI und lokale Auslieferung prüfen.",
            "evidence": "",
            "guide_url": "/guides/externe-skripte-und-sri-absichern"
        },
        {
            "id": "",
            "title": "Content-Security-Policy fehlt",
            "area": "BSI/Security-Header",
            "priority": "mittel",
            "priority_score": 53,
            "owner": "Technik",
            "team_route": "Developer/Ops",
            "deadline": "innerhalb von 30 Tagen",
            "effort": "mittel",
            "status": "offen",
            "action": "Content-Security-Policy schrittweise einführen.",
            "evidence": "",
            "guide_url": "/guides/security-header-setzen"
        },
        {
            "id": "",
            "title": "Kein Impressum-Link erkannt",
            "area": "DDG/Anbieterkennzeichnung",
            "priority": "mittel",
            "priority_score": 53,
            "owner": "Recht/Content",
            "team_route": "Content/UX",
            "deadline": "innerhalb von 30 Tagen",
            "effort": "niedrig bis mittel",
            "status": "offen",
            "action": "Impressum beziehungsweise Anbieterkennzeichnung sichtbar verlinken.",
            "evidence": "",
            "guide_url": "/guides/impressum-und-kontakt-sichtbar-machen"
        },
        {
            "id": "",
            "title": "Keine klare Kontaktmöglichkeit erkannt",
            "area": "DDG/Anbieterkennzeichnung",
            "priority": "mittel",
            "priority_score": 53,
            "owner": "Recht/Content",
            "team_route": "Content/UX",
            "deadline": "innerhalb von 30 Tagen",
            "effort": "niedrig bis mittel",
            "status": "offen",
            "action": "Klare Kontaktmöglichkeit ergänzen.",
            "evidence": "",
            "guide_url": "/guides/impressum-und-kontakt-sichtbar-machen"
        },
        {
            "id": "",
            "title": "Cross-Origin-Embedder-Policy fehlt",
            "area": "BSI/Security-Header",
            "priority": "niedrig",
            "priority_score": 24,
            "owner": "Technik",
            "team_route": "Developer/Ops",
            "deadline": "Backlog",
            "effort": "mittel",
            "status": "offen",
            "action": "Cross-Origin-Embedder-Policy nur nach Staging-Test setzen, weil eingebettete Drittressourcen kompatibel sein müssen.",
            "evidence": "",
            "guide_url": "/guides/security-header-setzen"
        },
        {
            "id": "",
            "title": "Cross-Origin-Opener-Policy fehlt",
            "area": "BSI/Security-Header",
            "priority": "niedrig",
            "priority_score": 24,
            "owner": "Technik",
            "team_route": "Developer/Ops",
            "deadline": "Backlog",
            "effort": "mittel",
            "status": "offen",
            "action": "Cross-Origin-Opener-Policy vorsichtig prüfen und nach Funktionstest setzen.",
            "evidence": "",
            "guide_url": "/guides/security-header-setzen"
        },
        {
            "id": "",
            "title": "Cross-Origin-Resource-Policy fehlt",
            "area": "BSI/Security-Header",
            "priority": "niedrig",
            "priority_score": 24,
            "owner": "Technik",
            "team_route": "Developer/Ops",
            "deadline": "Backlog",
            "effort": "mittel",
            "status": "offen",
            "action": "Cross-Origin-Resource-Policy nach Ressourcenprüfung setzen, damit fremde Einbettungen begrenzt werden.",
            "evidence": "",
            "guide_url": "/guides/security-header-setzen"
        },
        {
            "id": "",
            "title": "Permissions-Policy fehlt",
            "area": "BSI/Security-Header",
            "priority": "niedrig",
            "priority_score": 24,
            "owner": "Technik",
            "team_route": "Developer/Ops",
            "deadline": "Backlog",
            "effort": "mittel",
            "status": "offen",
            "action": "Nicht benötigte Browser-APIs wie Kamera, Mikrofon und Geolocation per Header begrenzen.",
            "evidence": "",
            "guide_url": "/guides/security-header-setzen"
        }
    ],
    "guide_playbook": [
        {
            "slug": "externe-skripte-und-sri-absichern",
            "title": "Externe Skripte und SRI absichern",
            "guide_url": "/guides/externe-skripte-und-sri-absichern",
            "area": "Browser Supply Chain",
            "owner": "IT/Webentwicklung",
            "effort": "mittel",
            "retest": "Externe Skripte, SRI, CSP und Consent-Auslösung erneut prüfen.",
            "evidence_required": "Skriptinventar, SRI-Hashes, CSP-Report-Only-Test.",
            "affected_count": 2,
            "task_count": 1,
            "ticket_count": 1,
            "priority_score": 61,
            "status": "sprint",
            "sample_findings": [
                {
                    "title": "Externe Skripte ohne Subresource Integrity",
                    "detail": "Externe Skripte auf Notwendigkeit, SRI und lokale Auslieferung prüfen."
                },
                {
                    "title": "Externe Skripte ohne Subresource Integrity",
                    "detail": "Externe Skripte auf Notwendigkeit, SRI und lokale Auslieferung prüfen."
                }
            ]
        },
        {
            "slug": "security-header-setzen",
            "title": "Security-Header setzen",
            "guide_url": "/guides/security-header-setzen",
            "area": "Web Security",
            "owner": "IT/Security",
            "effort": "mittel",
            "retest": "Header, TLS, CSP und Referrer-Policy nach Deployment erneut scannen.",
            "evidence_required": "Nginx/Apache/CDN-Konfiguration, Header-Export, Rollback-Plan.",
            "affected_count": 10,
            "task_count": 5,
            "ticket_count": 5,
            "priority_score": 53,
            "status": "einplanen",
            "sample_findings": [
                {
                    "title": "Content-Security-Policy fehlt",
                    "detail": "Content-Security-Policy schrittweise einführen."
                },
                {
                    "title": "Cross-Origin-Embedder-Policy fehlt",
                    "detail": "Cross-Origin-Embedder-Policy nur nach Staging-Test setzen, weil eingebettete Drittressourcen kompatibel sein müssen."
                },
                {
                    "title": "Cross-Origin-Opener-Policy fehlt",
                    "detail": "Cross-Origin-Opener-Policy vorsichtig prüfen und nach Funktionstest setzen."
                }
            ]
        },
        {
            "slug": "impressum-und-kontakt-sichtbar-machen",
            "title": "Impressum und Kontakt sichtbar machen",
            "guide_url": "/guides/impressum-und-kontakt-sichtbar-machen",
            "area": "Betreibertransparenz",
            "owner": "Legal/Content",
            "effort": "klein",
            "retest": "Footer, Kontakt, Impressum und Datenschutzlinks erneut crawlen.",
            "evidence_required": "Impressumsseite, Kontaktweg, Footer-Link, Änderungsdatum.",
            "affected_count": 4,
            "task_count": 2,
            "ticket_count": 2,
            "priority_score": 53,
            "status": "einplanen",
            "sample_findings": [
                {
                    "title": "Kein Impressum-Link erkannt",
                    "detail": "Impressum beziehungsweise Anbieterkennzeichnung sichtbar verlinken."
                },
                {
                    "title": "Keine klare Kontaktmöglichkeit erkannt",
                    "detail": "Klare Kontaktmöglichkeit ergänzen."
                },
                {
                    "title": "Kein Impressum-Link erkannt",
                    "detail": "Impressum beziehungsweise Anbieterkennzeichnung sichtbar verlinken."
                }
            ]
        }
    ],
    "team_routing": {
        "Developer/Ops": 6,
        "Content/UX": 2
    },
    "retest_workflow": {
        "capture": "Scan-ID, Screenshot, Cookie-/Request-Zeilen und betroffene Guide-Links sichern.",
        "implementation": "Konfigurationsdiff, CMS-/Tag-Manager-Änderung, Anbieterfreigabe oder Textversion dokumentieren.",
        "rescan": "Domain erneut prüfen und Ticket nur schließen, wenn SaferPage-Befund behoben oder begründet ist.",
        "archive": "JSON/CSV/XLSX oder ZIP-Nachweispaket im Trust Center ablegen und intern freigeben."
    },
    "disclaimer": "Automatisch aus SaferPage-Evidenz abgeleiteter Betreiber-Arbeitsplan. Umsetzung, interne Verantwortlichkeiten und rechtliche Freigabe liegen beim Website-Betreiber."
}