{
    "schema": "https://saferpage.de/schemas/operator-remediation-ticket-delivery.v1",
    "generated_at": "2026-06-22T09:39:52+00:00",
    "domain": "selfservice.nuernberger.de",
    "available": true,
    "scan": {
        "id": "06875d5d-62d4-44c3-a7a9-fc663d5c918e",
        "checked_at": "2026-06-21 13:00:00.992541+02"
    },
    "summary": "Delivery-Paket fuer Nachweispositionen mit Webhook-, Slack-, Teams- und Jira-Payloads, HMAC-Receiver-Vertrag und Test-Fixture.",
    "dry_run": true,
    "does_not_send": true,
    "metrics": {
        "delivery_job_count": 24,
        "high_priority_count": 7,
        "channel_count": 4,
        "receiver_check_count": 6,
        "test_fixture_negative_count": 4
    },
    "signature_verification": {
        "algorithm": "HMAC-SHA256",
        "canonical_body": "Exakt canonical_webhook_body aus dem jeweiligen delivery_job signieren; keine Pretty-Print- oder Reordering-Variante verwenden.",
        "signature_secret_ref": "SAFERPAGE_OPERATOR_WEBHOOK_SECRET oder zielsystemspezifisches Secret im Secret Manager",
        "signature_header": "X-SaferPage-Signature",
        "signature_format": "sha256=<hex_hmac_sha256>",
        "body_sha256_header": "X-SaferPage-Body-SHA256",
        "idempotency_header": "X-SaferPage-Idempotency-Key",
        "receiver_must_check": [
            "HMAC ueber den exakten Request-Body stimmt mit X-SaferPage-Signature ueberein.",
            "SHA-256 des exakten Request-Body stimmt mit X-SaferPage-Body-SHA256 ueberein.",
            "X-SaferPage-Event ist operator.remediation.ticket_ready.",
            "X-SaferPage-Schema ist operator-remediation-ticket-delivery.v1.",
            "X-SaferPage-Idempotency-Key wurde fuer Domain, Scan und Nachweisposition noch nicht verarbeitet.",
            "Empfaenger, Projekt, Queue und Verantwortlichkeit sind fuer diese Domain freigegeben."
        ],
        "failure_policy": "Bei fehlender Signatur, Body-Hash-Abweichung, Replay oder unbekanntem Zielsystem ablehnen, nicht teilweise verarbeiten und Auditlog ohne Secret-Werte schreiben."
    },
    "verification_test_fixture": {
        "public_test_secret": "saferpage_remediation_ticket_test_secret_do_not_use_in_production",
        "canonical_body": "{\"event\":\"operator.remediation.ticket_ready\",\"domain\":\"example.test\",\"scan_id\":\"scan_test_2026_06_09\",\"ticket_id\":\"remediation_test_ticket\",\"priority\":\"hoch\",\"severity\":\"critical\",\"owner\":\"Datenschutz/IT\",\"sla\":\"7 Tage\",\"title\":\"Consent-Befund reproduzieren und beheben\",\"evidence\":\"Test-Fixture fuer Receiver-Implementierung.\",\"action\":\"Testpayload unveraendert verifizieren, Idempotency-Key pruefen und danach verwerfen.\",\"acceptance_criteria\":[\"Signatur stimmt mit exakt diesem Body ueberein.\",\"Idempotency-Key wurde noch nicht verarbeitet.\",\"Event, Schema und Domain sind erlaubt.\"],\"links\":{\"guide\":\"https://saferpage.de/guides/tracking-und-consent-reparieren\",\"evidence\":\"https://saferpage.de/befunde/example.test\",\"rescan\":\"https://saferpage.de/scanbetrieb/example.test\",\"report\":\"https://saferpage.de/example.test\",\"fix_guides\":\"https://saferpage.de/fix-guides/example.test\"}}",
        "canonical_body_sha256": "cd19d86313ea4d6ea0f5dcd65b2b40794f017121c655dedcdfa6df362b480dcf",
        "expected_signature": "sha256=834a9f0cd7a3922648b8aa1ab00aef7ae7aa31d08b63e804ee4a586c0e9dd555",
        "expected_signature_header": "X-SaferPage-Signature: sha256=834a9f0cd7a3922648b8aa1ab00aef7ae7aa31d08b63e804ee4a586c0e9dd555",
        "idempotency_key": "sp-fix-test-fixture",
        "positive_test": "Empfaenger akzeptiert den unveraenderten canonical_body mit expected_signature und verwirft ihn danach als Testevent.",
        "negative_tests": [
            "Ein geaendertes Byte im Body muss abgelehnt werden.",
            "Ein fehlender oder doppelter X-SaferPage-Idempotency-Key muss abgelehnt werden.",
            "Eine Signatur mit anderem Secret muss abgelehnt werden.",
            "Ein erneuter Request mit derselben Idempotency-Key/Event-Kombination darf nicht erneut verarbeitet werden."
        ],
        "sample_commands": [
            "printf %s \"$BODY\" | openssl dgst -sha256 -hmac \"saferpage_remediation_ticket_test_secret_do_not_use_in_production\" -binary | xxd -p -c 256",
            "printf %s \"$BODY\" | sha256sum",
            "curl -X POST -H \"Content-Type: application/json\" -H \"X-SaferPage-Event: operator.remediation.ticket_ready\" -H \"X-SaferPage-Signature: sha256=834a9f0cd7a3922648b8aa1ab00aef7ae7aa31d08b63e804ee4a586c0e9dd555\" --data \"$BODY\" https://receiver.example.test/saferpage"
        ]
    },
    "retry_policy": {
        "max_attempts": 3,
        "backoff_seconds": [
            300,
            1800,
            7200
        ],
        "dead_letter_queue": "privacyops.remediation_ticket.failed"
    },
    "delivery_jobs": [
        {
            "id": "sp-fix-897de6948460c61aba66f51f",
            "ticket_id": "remediation_missing_csp",
            "channel": "jira_slack_webhook",
            "priority": "hoch",
            "severity": "critical",
            "owner": "Website-Betrieb/Datenschutz",
            "sla": "7 Tage",
            "summary": "[selfservice.nuernberger.de] Content-Security-Policy fehlt",
            "description": "Header `content-security-policy` setzen und nach Deployment erneut prüfen.",
            "idempotency_key": "sp-fix-897de6948460c61aba66f51f",
            "headers": {
                "X-SaferPage-Event": "operator.remediation.ticket_ready",
                "X-SaferPage-Schema": "operator-remediation-ticket-delivery.v1",
                "X-SaferPage-Idempotency-Key": "sp-fix-897de6948460c61aba66f51f",
                "X-SaferPage-Body-SHA256": "f488fd27363c0a4ce7e67a6137ee087fd7a6a734c87bdbe1655ab8fdb6dcb41b",
                "X-SaferPage-Signature": "sha256=<HMAC ueber canonical_webhook_body>"
            },
            "webhook_payload": {
                "event": "operator.remediation.ticket_ready",
                "domain": "selfservice.nuernberger.de",
                "scan_id": "06875d5d-62d4-44c3-a7a9-fc663d5c918e",
                "ticket_id": "remediation_missing_csp",
                "priority": "hoch",
                "severity": "critical",
                "owner": "Website-Betrieb/Datenschutz",
                "sla": "7 Tage",
                "title": "Content-Security-Policy fehlt",
                "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."
                ],
                "links": {
                    "guide": "https://saferpage.de/guides/security-header-setzen",
                    "evidence": "https://saferpage.de/befunde/selfservice.nuernberger.de",
                    "rescan": "https://saferpage.de/scanbetrieb/selfservice.nuernberger.de",
                    "report": "https://saferpage.de/selfservice.nuernberger.de",
                    "fix_guides": "https://saferpage.de/fix-guides/selfservice.nuernberger.de"
                }
            },
            "canonical_webhook_body": "{\"event\":\"operator.remediation.ticket_ready\",\"domain\":\"selfservice.nuernberger.de\",\"scan_id\":\"06875d5d-62d4-44c3-a7a9-fc663d5c918e\",\"ticket_id\":\"remediation_missing_csp\",\"priority\":\"hoch\",\"severity\":\"critical\",\"owner\":\"Website-Betrieb/Datenschutz\",\"sla\":\"7 Tage\",\"title\":\"Content-Security-Policy fehlt\",\"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.\"],\"links\":{\"guide\":\"https://saferpage.de/guides/security-header-setzen\",\"evidence\":\"https://saferpage.de/befunde/selfservice.nuernberger.de\",\"rescan\":\"https://saferpage.de/scanbetrieb/selfservice.nuernberger.de\",\"report\":\"https://saferpage.de/selfservice.nuernberger.de\",\"fix_guides\":\"https://saferpage.de/fix-guides/selfservice.nuernberger.de\"}}",
            "canonical_body_sha256": "f488fd27363c0a4ce7e67a6137ee087fd7a6a734c87bdbe1655ab8fdb6dcb41b",
            "slack_payload": {
                "text": "[HOCH] selfservice.nuernberger.de: Content-Security-Policy fehlt",
                "blocks": [
                    {
                        "type": "section",
                        "text": {
                            "type": "mrkdwn",
                            "text": "*Content-Security-Policy fehlt*\nHeader `content-security-policy` setzen und nach Deployment erneut prüfen."
                        }
                    },
                    {
                        "type": "context",
                        "elements": [
                            {
                                "type": "mrkdwn",
                                "text": "Verantwortlich: Website-Betrieb/Datenschutz · Zielzeit: 7 Tage · https://saferpage.de/befunde/selfservice.nuernberger.de"
                            }
                        ]
                    }
                ]
            },
            "teams_payload": {
                "type": "message",
                "summary": "[HOCH] selfservice.nuernberger.de: Content-Security-Policy fehlt",
                "attachments": [
                    {
                        "contentType": "application/vnd.microsoft.card.adaptive",
                        "content": {
                            "type": "AdaptiveCard",
                            "version": "1.4",
                            "body": [
                                {
                                    "type": "TextBlock",
                                    "weight": "Bolder",
                                    "text": "Content-Security-Policy fehlt"
                                },
                                {
                                    "type": "TextBlock",
                                    "wrap": true,
                                    "text": "Header `content-security-policy` setzen und nach Deployment erneut prüfen."
                                },
                                {
                                    "type": "FactSet",
                                    "facts": [
                                        {
                                            "title": "Domain",
                                            "value": "selfservice.nuernberger.de"
                                        },
                                        {
                                            "title": "Verantwortlich",
                                            "value": "Website-Betrieb/Datenschutz"
                                        },
                                        {
                                            "title": "Zielzeit",
                                            "value": "7 Tage"
                                        }
                                    ]
                                }
                            ]
                        }
                    }
                ]
            },
            "jira_payload": {
                "fields": {
                    "summary": "[selfservice.nuernberger.de] Content-Security-Policy fehlt",
                    "description": "Header `content-security-policy` setzen und nach Deployment erneut prüfen.\n\nNachweis: https://saferpage.de/befunde/selfservice.nuernberger.de\nHintergrundseite: https://saferpage.de/guides/security-header-setzen\nRe-Scan: https://saferpage.de/scanbetrieb/selfservice.nuernberger.de",
                    "labels": [
                        "saferpage",
                        "privacyops",
                        "remediation",
                        "hoch"
                    ],
                    "priority": {
                        "name": "High"
                    }
                }
            }
        },
        {
            "id": "sp-fix-8a99f1cd1eb3eda77506db0a",
            "ticket_id": "remediation_pre_consent_nonessential_cookies",
            "channel": "jira_slack_webhook",
            "priority": "hoch",
            "severity": "critical",
            "owner": "Website-Betrieb/Datenschutz",
            "sla": "7 Tage",
            "summary": "[selfservice.nuernberger.de] Möglicherweise nicht notwendige Cookies vor Einwilligung",
            "description": "Prüfen, ob diese Cookies technisch notwendig sind oder erst nach Einwilligung gesetzt werden dürfen.",
            "idempotency_key": "sp-fix-8a99f1cd1eb3eda77506db0a",
            "headers": {
                "X-SaferPage-Event": "operator.remediation.ticket_ready",
                "X-SaferPage-Schema": "operator-remediation-ticket-delivery.v1",
                "X-SaferPage-Idempotency-Key": "sp-fix-8a99f1cd1eb3eda77506db0a",
                "X-SaferPage-Body-SHA256": "0e8659fb2e1a1c29e652a329105f09c1a3c362092fb6441f1d4de4968dfe15b3",
                "X-SaferPage-Signature": "sha256=<HMAC ueber canonical_webhook_body>"
            },
            "webhook_payload": {
                "event": "operator.remediation.ticket_ready",
                "domain": "selfservice.nuernberger.de",
                "scan_id": "06875d5d-62d4-44c3-a7a9-fc663d5c918e",
                "ticket_id": "remediation_pre_consent_nonessential_cookies",
                "priority": "hoch",
                "severity": "critical",
                "owner": "Website-Betrieb/Datenschutz",
                "sla": "7 Tage",
                "title": "Möglicherweise nicht notwendige Cookies vor Einwilligung",
                "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."
                ],
                "links": {
                    "guide": "https://saferpage.de/guides/tracking-und-consent-reparieren",
                    "evidence": "https://saferpage.de/befunde/selfservice.nuernberger.de",
                    "rescan": "https://saferpage.de/scanbetrieb/selfservice.nuernberger.de",
                    "report": "https://saferpage.de/selfservice.nuernberger.de",
                    "fix_guides": "https://saferpage.de/fix-guides/selfservice.nuernberger.de"
                }
            },
            "canonical_webhook_body": "{\"event\":\"operator.remediation.ticket_ready\",\"domain\":\"selfservice.nuernberger.de\",\"scan_id\":\"06875d5d-62d4-44c3-a7a9-fc663d5c918e\",\"ticket_id\":\"remediation_pre_consent_nonessential_cookies\",\"priority\":\"hoch\",\"severity\":\"critical\",\"owner\":\"Website-Betrieb/Datenschutz\",\"sla\":\"7 Tage\",\"title\":\"Möglicherweise nicht notwendige Cookies vor Einwilligung\",\"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.\"],\"links\":{\"guide\":\"https://saferpage.de/guides/tracking-und-consent-reparieren\",\"evidence\":\"https://saferpage.de/befunde/selfservice.nuernberger.de\",\"rescan\":\"https://saferpage.de/scanbetrieb/selfservice.nuernberger.de\",\"report\":\"https://saferpage.de/selfservice.nuernberger.de\",\"fix_guides\":\"https://saferpage.de/fix-guides/selfservice.nuernberger.de\"}}",
            "canonical_body_sha256": "0e8659fb2e1a1c29e652a329105f09c1a3c362092fb6441f1d4de4968dfe15b3",
            "slack_payload": {
                "text": "[HOCH] selfservice.nuernberger.de: Möglicherweise nicht notwendige Cookies vor Einwilligung",
                "blocks": [
                    {
                        "type": "section",
                        "text": {
                            "type": "mrkdwn",
                            "text": "*Möglicherweise nicht notwendige Cookies vor Einwilligung*\nPrüfen, ob diese Cookies technisch notwendig sind oder erst nach Einwilligung gesetzt werden dürfen."
                        }
                    },
                    {
                        "type": "context",
                        "elements": [
                            {
                                "type": "mrkdwn",
                                "text": "Verantwortlich: Website-Betrieb/Datenschutz · Zielzeit: 7 Tage · https://saferpage.de/befunde/selfservice.nuernberger.de"
                            }
                        ]
                    }
                ]
            },
            "teams_payload": {
                "type": "message",
                "summary": "[HOCH] selfservice.nuernberger.de: Möglicherweise nicht notwendige Cookies vor Einwilligung",
                "attachments": [
                    {
                        "contentType": "application/vnd.microsoft.card.adaptive",
                        "content": {
                            "type": "AdaptiveCard",
                            "version": "1.4",
                            "body": [
                                {
                                    "type": "TextBlock",
                                    "weight": "Bolder",
                                    "text": "Möglicherweise nicht notwendige Cookies vor Einwilligung"
                                },
                                {
                                    "type": "TextBlock",
                                    "wrap": true,
                                    "text": "Prüfen, ob diese Cookies technisch notwendig sind oder erst nach Einwilligung gesetzt werden dürfen."
                                },
                                {
                                    "type": "FactSet",
                                    "facts": [
                                        {
                                            "title": "Domain",
                                            "value": "selfservice.nuernberger.de"
                                        },
                                        {
                                            "title": "Verantwortlich",
                                            "value": "Website-Betrieb/Datenschutz"
                                        },
                                        {
                                            "title": "Zielzeit",
                                            "value": "7 Tage"
                                        }
                                    ]
                                }
                            ]
                        }
                    }
                ]
            },
            "jira_payload": {
                "fields": {
                    "summary": "[selfservice.nuernberger.de] Möglicherweise nicht notwendige Cookies vor Einwilligung",
                    "description": "Prüfen, ob diese Cookies technisch notwendig sind oder erst nach Einwilligung gesetzt werden dürfen.\n\nNachweis: https://saferpage.de/befunde/selfservice.nuernberger.de\nHintergrundseite: https://saferpage.de/guides/tracking-und-consent-reparieren\nRe-Scan: https://saferpage.de/scanbetrieb/selfservice.nuernberger.de",
                    "labels": [
                        "saferpage",
                        "privacyops",
                        "remediation",
                        "hoch"
                    ],
                    "priority": {
                        "name": "High"
                    }
                }
            }
        },
        {
            "id": "sp-fix-338882ca566367fa4fe42796",
            "ticket_id": "remediation_security_header_gap",
            "channel": "jira_slack_webhook",
            "priority": "hoch",
            "severity": "critical",
            "owner": "IT/Security",
            "sla": "7 Tage",
            "summary": "[selfservice.nuernberger.de] Security-Header, Referrer-Policy und Browser-Schutz setzen",
            "description": "Befund mit Hintergrundseite einordnen und danach erneut scannen.",
            "idempotency_key": "sp-fix-338882ca566367fa4fe42796",
            "headers": {
                "X-SaferPage-Event": "operator.remediation.ticket_ready",
                "X-SaferPage-Schema": "operator-remediation-ticket-delivery.v1",
                "X-SaferPage-Idempotency-Key": "sp-fix-338882ca566367fa4fe42796",
                "X-SaferPage-Body-SHA256": "2b3071549f4ecb7d09e1f5187e13f93f6c510988ebd65b6236cc5634e69a1394",
                "X-SaferPage-Signature": "sha256=<HMAC ueber canonical_webhook_body>"
            },
            "webhook_payload": {
                "event": "operator.remediation.ticket_ready",
                "domain": "selfservice.nuernberger.de",
                "scan_id": "06875d5d-62d4-44c3-a7a9-fc663d5c918e",
                "ticket_id": "remediation_security_header_gap",
                "priority": "hoch",
                "severity": "critical",
                "owner": "IT/Security",
                "sla": "7 Tage",
                "title": "Security-Header, Referrer-Policy und Browser-Schutz setzen",
                "evidence": "1 von 9 wichtigen Security-Headern vorhanden, 1 korrekt bewertet. Keine Content-Security-Policy gefunden.",
                "action": "Befund mit Hintergrundseite einordnen 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."
                ],
                "links": {
                    "guide": "https://saferpage.de/guides/security-header-setzen",
                    "evidence": "https://saferpage.de/befunde/selfservice.nuernberger.de",
                    "rescan": "https://saferpage.de/scanbetrieb/selfservice.nuernberger.de",
                    "report": "https://saferpage.de/selfservice.nuernberger.de",
                    "fix_guides": "https://saferpage.de/fix-guides/selfservice.nuernberger.de"
                }
            },
            "canonical_webhook_body": "{\"event\":\"operator.remediation.ticket_ready\",\"domain\":\"selfservice.nuernberger.de\",\"scan_id\":\"06875d5d-62d4-44c3-a7a9-fc663d5c918e\",\"ticket_id\":\"remediation_security_header_gap\",\"priority\":\"hoch\",\"severity\":\"critical\",\"owner\":\"IT/Security\",\"sla\":\"7 Tage\",\"title\":\"Security-Header, Referrer-Policy und Browser-Schutz setzen\",\"evidence\":\"1 von 9 wichtigen Security-Headern vorhanden, 1 korrekt bewertet. Keine Content-Security-Policy gefunden.\",\"action\":\"Befund mit Hintergrundseite einordnen 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.\"],\"links\":{\"guide\":\"https://saferpage.de/guides/security-header-setzen\",\"evidence\":\"https://saferpage.de/befunde/selfservice.nuernberger.de\",\"rescan\":\"https://saferpage.de/scanbetrieb/selfservice.nuernberger.de\",\"report\":\"https://saferpage.de/selfservice.nuernberger.de\",\"fix_guides\":\"https://saferpage.de/fix-guides/selfservice.nuernberger.de\"}}",
            "canonical_body_sha256": "2b3071549f4ecb7d09e1f5187e13f93f6c510988ebd65b6236cc5634e69a1394",
            "slack_payload": {
                "text": "[HOCH] selfservice.nuernberger.de: Security-Header, Referrer-Policy und Browser-Schutz setzen",
                "blocks": [
                    {
                        "type": "section",
                        "text": {
                            "type": "mrkdwn",
                            "text": "*Security-Header, Referrer-Policy und Browser-Schutz setzen*\nBefund mit Hintergrundseite einordnen und danach erneut scannen."
                        }
                    },
                    {
                        "type": "context",
                        "elements": [
                            {
                                "type": "mrkdwn",
                                "text": "Verantwortlich: IT/Security · Zielzeit: 7 Tage · https://saferpage.de/befunde/selfservice.nuernberger.de"
                            }
                        ]
                    }
                ]
            },
            "teams_payload": {
                "type": "message",
                "summary": "[HOCH] selfservice.nuernberger.de: Security-Header, Referrer-Policy und Browser-Schutz setzen",
                "attachments": [
                    {
                        "contentType": "application/vnd.microsoft.card.adaptive",
                        "content": {
                            "type": "AdaptiveCard",
                            "version": "1.4",
                            "body": [
                                {
                                    "type": "TextBlock",
                                    "weight": "Bolder",
                                    "text": "Security-Header, Referrer-Policy und Browser-Schutz setzen"
                                },
                                {
                                    "type": "TextBlock",
                                    "wrap": true,
                                    "text": "Befund mit Hintergrundseite einordnen und danach erneut scannen."
                                },
                                {
                                    "type": "FactSet",
                                    "facts": [
                                        {
                                            "title": "Domain",
                                            "value": "selfservice.nuernberger.de"
                                        },
                                        {
                                            "title": "Verantwortlich",
                                            "value": "IT/Security"
                                        },
                                        {
                                            "title": "Zielzeit",
                                            "value": "7 Tage"
                                        }
                                    ]
                                }
                            ]
                        }
                    }
                ]
            },
            "jira_payload": {
                "fields": {
                    "summary": "[selfservice.nuernberger.de] Security-Header, Referrer-Policy und Browser-Schutz setzen",
                    "description": "Befund mit Hintergrundseite einordnen und danach erneut scannen.\n\nNachweis: https://saferpage.de/befunde/selfservice.nuernberger.de\nHintergrundseite: https://saferpage.de/guides/security-header-setzen\nRe-Scan: https://saferpage.de/scanbetrieb/selfservice.nuernberger.de",
                    "labels": [
                        "saferpage",
                        "privacyops",
                        "remediation",
                        "hoch"
                    ],
                    "priority": {
                        "name": "High"
                    }
                }
            }
        },
        {
            "id": "sp-fix-8f42ec4e23b49e878f668c2b",
            "ticket_id": "remediation_module_security_tls",
            "channel": "jira_slack_webhook",
            "priority": "hoch",
            "severity": "critical",
            "owner": "Website-Betrieb/Datenschutz",
            "sla": "7 Tage",
            "summary": "[selfservice.nuernberger.de] Sicherheit, TLS & Header",
            "description": "HTTPS, Zertifikat, HSTS, CSP, zentrale Security-Header und externe Skriptquellen sauber konfigurieren.",
            "idempotency_key": "sp-fix-8f42ec4e23b49e878f668c2b",
            "headers": {
                "X-SaferPage-Event": "operator.remediation.ticket_ready",
                "X-SaferPage-Schema": "operator-remediation-ticket-delivery.v1",
                "X-SaferPage-Idempotency-Key": "sp-fix-8f42ec4e23b49e878f668c2b",
                "X-SaferPage-Body-SHA256": "bc8443b26a04c40b777b472aff2bd2e082605d77094cc172cfd496660b9268b8",
                "X-SaferPage-Signature": "sha256=<HMAC ueber canonical_webhook_body>"
            },
            "webhook_payload": {
                "event": "operator.remediation.ticket_ready",
                "domain": "selfservice.nuernberger.de",
                "scan_id": "06875d5d-62d4-44c3-a7a9-fc663d5c918e",
                "ticket_id": "remediation_module_security_tls",
                "priority": "hoch",
                "severity": "critical",
                "owner": "Website-Betrieb/Datenschutz",
                "sla": "7 Tage",
                "title": "Sicherheit, TLS & Header",
                "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."
                ],
                "links": {
                    "guide": "https://saferpage.de/guides/security-header-setzen",
                    "evidence": "https://saferpage.de/befunde/selfservice.nuernberger.de",
                    "rescan": "https://saferpage.de/scanbetrieb/selfservice.nuernberger.de",
                    "report": "https://saferpage.de/selfservice.nuernberger.de",
                    "fix_guides": "https://saferpage.de/fix-guides/selfservice.nuernberger.de"
                }
            },
            "canonical_webhook_body": "{\"event\":\"operator.remediation.ticket_ready\",\"domain\":\"selfservice.nuernberger.de\",\"scan_id\":\"06875d5d-62d4-44c3-a7a9-fc663d5c918e\",\"ticket_id\":\"remediation_module_security_tls\",\"priority\":\"hoch\",\"severity\":\"critical\",\"owner\":\"Website-Betrieb/Datenschutz\",\"sla\":\"7 Tage\",\"title\":\"Sicherheit, TLS & Header\",\"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.\"],\"links\":{\"guide\":\"https://saferpage.de/guides/security-header-setzen\",\"evidence\":\"https://saferpage.de/befunde/selfservice.nuernberger.de\",\"rescan\":\"https://saferpage.de/scanbetrieb/selfservice.nuernberger.de\",\"report\":\"https://saferpage.de/selfservice.nuernberger.de\",\"fix_guides\":\"https://saferpage.de/fix-guides/selfservice.nuernberger.de\"}}",
            "canonical_body_sha256": "bc8443b26a04c40b777b472aff2bd2e082605d77094cc172cfd496660b9268b8",
            "slack_payload": {
                "text": "[HOCH] selfservice.nuernberger.de: Sicherheit, TLS & Header",
                "blocks": [
                    {
                        "type": "section",
                        "text": {
                            "type": "mrkdwn",
                            "text": "*Sicherheit, TLS & Header*\nHTTPS, Zertifikat, HSTS, CSP, zentrale Security-Header und externe Skriptquellen sauber konfigurieren."
                        }
                    },
                    {
                        "type": "context",
                        "elements": [
                            {
                                "type": "mrkdwn",
                                "text": "Verantwortlich: Website-Betrieb/Datenschutz · Zielzeit: 7 Tage · https://saferpage.de/befunde/selfservice.nuernberger.de"
                            }
                        ]
                    }
                ]
            },
            "teams_payload": {
                "type": "message",
                "summary": "[HOCH] selfservice.nuernberger.de: Sicherheit, TLS & Header",
                "attachments": [
                    {
                        "contentType": "application/vnd.microsoft.card.adaptive",
                        "content": {
                            "type": "AdaptiveCard",
                            "version": "1.4",
                            "body": [
                                {
                                    "type": "TextBlock",
                                    "weight": "Bolder",
                                    "text": "Sicherheit, TLS & Header"
                                },
                                {
                                    "type": "TextBlock",
                                    "wrap": true,
                                    "text": "HTTPS, Zertifikat, HSTS, CSP, zentrale Security-Header und externe Skriptquellen sauber konfigurieren."
                                },
                                {
                                    "type": "FactSet",
                                    "facts": [
                                        {
                                            "title": "Domain",
                                            "value": "selfservice.nuernberger.de"
                                        },
                                        {
                                            "title": "Verantwortlich",
                                            "value": "Website-Betrieb/Datenschutz"
                                        },
                                        {
                                            "title": "Zielzeit",
                                            "value": "7 Tage"
                                        }
                                    ]
                                }
                            ]
                        }
                    }
                ]
            },
            "jira_payload": {
                "fields": {
                    "summary": "[selfservice.nuernberger.de] Sicherheit, TLS & Header",
                    "description": "HTTPS, Zertifikat, HSTS, CSP, zentrale Security-Header und externe Skriptquellen sauber konfigurieren.\n\nNachweis: https://saferpage.de/befunde/selfservice.nuernberger.de\nHintergrundseite: https://saferpage.de/guides/security-header-setzen\nRe-Scan: https://saferpage.de/scanbetrieb/selfservice.nuernberger.de",
                    "labels": [
                        "saferpage",
                        "privacyops",
                        "remediation",
                        "hoch"
                    ],
                    "priority": {
                        "name": "High"
                    }
                }
            }
        },
        {
            "id": "sp-fix-2e20fcd23335f8e09e218e2e",
            "ticket_id": "remediation_important_pages_not_discovered",
            "channel": "jira_slack_webhook",
            "priority": "hoch",
            "severity": "critical",
            "owner": "Website-Betrieb/Datenschutz",
            "sla": "7 Tage",
            "summary": "[selfservice.nuernberger.de] Wichtige Betreiberseiten nicht vollständig in der Linkstruktur gefunden",
            "description": "Datenschutz und Impressum sollten von der Startseite aus klar erreichbar sein.",
            "idempotency_key": "sp-fix-2e20fcd23335f8e09e218e2e",
            "headers": {
                "X-SaferPage-Event": "operator.remediation.ticket_ready",
                "X-SaferPage-Schema": "operator-remediation-ticket-delivery.v1",
                "X-SaferPage-Idempotency-Key": "sp-fix-2e20fcd23335f8e09e218e2e",
                "X-SaferPage-Body-SHA256": "6c53894b0655ea4d6c71e5361571d4ff501644a19873ecd4cbb40a1fabd429fb",
                "X-SaferPage-Signature": "sha256=<HMAC ueber canonical_webhook_body>"
            },
            "webhook_payload": {
                "event": "operator.remediation.ticket_ready",
                "domain": "selfservice.nuernberger.de",
                "scan_id": "06875d5d-62d4-44c3-a7a9-fc663d5c918e",
                "ticket_id": "remediation_important_pages_not_discovered",
                "priority": "hoch",
                "severity": "critical",
                "owner": "Website-Betrieb/Datenschutz",
                "sla": "7 Tage",
                "title": "Wichtige Betreiberseiten nicht vollständig in der Linkstruktur gefunden",
                "evidence": "",
                "action": "Datenschutz und Impressum sollten von der Startseite aus klar erreichbar sein.",
                "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."
                ],
                "links": {
                    "guide": "https://saferpage.de/guides/datenschutz-webseiten-pruefkatalog",
                    "evidence": "https://saferpage.de/befunde/selfservice.nuernberger.de",
                    "rescan": "https://saferpage.de/scanbetrieb/selfservice.nuernberger.de",
                    "report": "https://saferpage.de/selfservice.nuernberger.de",
                    "fix_guides": "https://saferpage.de/fix-guides/selfservice.nuernberger.de"
                }
            },
            "canonical_webhook_body": "{\"event\":\"operator.remediation.ticket_ready\",\"domain\":\"selfservice.nuernberger.de\",\"scan_id\":\"06875d5d-62d4-44c3-a7a9-fc663d5c918e\",\"ticket_id\":\"remediation_important_pages_not_discovered\",\"priority\":\"hoch\",\"severity\":\"critical\",\"owner\":\"Website-Betrieb/Datenschutz\",\"sla\":\"7 Tage\",\"title\":\"Wichtige Betreiberseiten nicht vollständig in der Linkstruktur gefunden\",\"evidence\":\"\",\"action\":\"Datenschutz und Impressum sollten von der Startseite aus klar erreichbar sein.\",\"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.\"],\"links\":{\"guide\":\"https://saferpage.de/guides/datenschutz-webseiten-pruefkatalog\",\"evidence\":\"https://saferpage.de/befunde/selfservice.nuernberger.de\",\"rescan\":\"https://saferpage.de/scanbetrieb/selfservice.nuernberger.de\",\"report\":\"https://saferpage.de/selfservice.nuernberger.de\",\"fix_guides\":\"https://saferpage.de/fix-guides/selfservice.nuernberger.de\"}}",
            "canonical_body_sha256": "6c53894b0655ea4d6c71e5361571d4ff501644a19873ecd4cbb40a1fabd429fb",
            "slack_payload": {
                "text": "[HOCH] selfservice.nuernberger.de: Wichtige Betreiberseiten nicht vollständig in der Linkstruktur gefunden",
                "blocks": [
                    {
                        "type": "section",
                        "text": {
                            "type": "mrkdwn",
                            "text": "*Wichtige Betreiberseiten nicht vollständig in der Linkstruktur gefunden*\nDatenschutz und Impressum sollten von der Startseite aus klar erreichbar sein."
                        }
                    },
                    {
                        "type": "context",
                        "elements": [
                            {
                                "type": "mrkdwn",
                                "text": "Verantwortlich: Website-Betrieb/Datenschutz · Zielzeit: 7 Tage · https://saferpage.de/befunde/selfservice.nuernberger.de"
                            }
                        ]
                    }
                ]
            },
            "teams_payload": {
                "type": "message",
                "summary": "[HOCH] selfservice.nuernberger.de: Wichtige Betreiberseiten nicht vollständig in der Linkstruktur gefunden",
                "attachments": [
                    {
                        "contentType": "application/vnd.microsoft.card.adaptive",
                        "content": {
                            "type": "AdaptiveCard",
                            "version": "1.4",
                            "body": [
                                {
                                    "type": "TextBlock",
                                    "weight": "Bolder",
                                    "text": "Wichtige Betreiberseiten nicht vollständig in der Linkstruktur gefunden"
                                },
                                {
                                    "type": "TextBlock",
                                    "wrap": true,
                                    "text": "Datenschutz und Impressum sollten von der Startseite aus klar erreichbar sein."
                                },
                                {
                                    "type": "FactSet",
                                    "facts": [
                                        {
                                            "title": "Domain",
                                            "value": "selfservice.nuernberger.de"
                                        },
                                        {
                                            "title": "Verantwortlich",
                                            "value": "Website-Betrieb/Datenschutz"
                                        },
                                        {
                                            "title": "Zielzeit",
                                            "value": "7 Tage"
                                        }
                                    ]
                                }
                            ]
                        }
                    }
                ]
            },
            "jira_payload": {
                "fields": {
                    "summary": "[selfservice.nuernberger.de] Wichtige Betreiberseiten nicht vollständig in der Linkstruktur gefunden",
                    "description": "Datenschutz und Impressum sollten von der Startseite aus klar erreichbar sein.\n\nNachweis: https://saferpage.de/befunde/selfservice.nuernberger.de\nHintergrundseite: https://saferpage.de/guides/datenschutz-webseiten-pruefkatalog\nRe-Scan: https://saferpage.de/scanbetrieb/selfservice.nuernberger.de",
                    "labels": [
                        "saferpage",
                        "privacyops",
                        "remediation",
                        "hoch"
                    ],
                    "priority": {
                        "name": "High"
                    }
                }
            }
        },
        {
            "id": "sp-fix-2e10ba18e28e1c81fa1e37b8",
            "ticket_id": "remediation_missing_x_content_type_options",
            "channel": "jira_slack_webhook",
            "priority": "hoch",
            "severity": "critical",
            "owner": "Website-Betrieb/Datenschutz",
            "sla": "7 Tage",
            "summary": "[selfservice.nuernberger.de] X-Content-Type-Options fehlt",
            "description": "Header `x-content-type-options` setzen und nach Deployment erneut prüfen.",
            "idempotency_key": "sp-fix-2e10ba18e28e1c81fa1e37b8",
            "headers": {
                "X-SaferPage-Event": "operator.remediation.ticket_ready",
                "X-SaferPage-Schema": "operator-remediation-ticket-delivery.v1",
                "X-SaferPage-Idempotency-Key": "sp-fix-2e10ba18e28e1c81fa1e37b8",
                "X-SaferPage-Body-SHA256": "31a62f2769cc3afa4fa1c90bc8016f9a84fe7deffa2525e6d1b60f096a233733",
                "X-SaferPage-Signature": "sha256=<HMAC ueber canonical_webhook_body>"
            },
            "webhook_payload": {
                "event": "operator.remediation.ticket_ready",
                "domain": "selfservice.nuernberger.de",
                "scan_id": "06875d5d-62d4-44c3-a7a9-fc663d5c918e",
                "ticket_id": "remediation_missing_x_content_type_options",
                "priority": "hoch",
                "severity": "critical",
                "owner": "Website-Betrieb/Datenschutz",
                "sla": "7 Tage",
                "title": "X-Content-Type-Options fehlt",
                "evidence": "",
                "action": "Header `x-content-type-options` setzen und nach Deployment erneut prüfen.",
                "acceptance_criteria": [
                    "Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.",
                    "Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.",
                    "Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe."
                ],
                "links": {
                    "guide": "https://saferpage.de/guides/security-header-setzen",
                    "evidence": "https://saferpage.de/befunde/selfservice.nuernberger.de",
                    "rescan": "https://saferpage.de/scanbetrieb/selfservice.nuernberger.de",
                    "report": "https://saferpage.de/selfservice.nuernberger.de",
                    "fix_guides": "https://saferpage.de/fix-guides/selfservice.nuernberger.de"
                }
            },
            "canonical_webhook_body": "{\"event\":\"operator.remediation.ticket_ready\",\"domain\":\"selfservice.nuernberger.de\",\"scan_id\":\"06875d5d-62d4-44c3-a7a9-fc663d5c918e\",\"ticket_id\":\"remediation_missing_x_content_type_options\",\"priority\":\"hoch\",\"severity\":\"critical\",\"owner\":\"Website-Betrieb/Datenschutz\",\"sla\":\"7 Tage\",\"title\":\"X-Content-Type-Options fehlt\",\"evidence\":\"\",\"action\":\"Header `x-content-type-options` setzen und nach Deployment erneut prüfen.\",\"acceptance_criteria\":[\"Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.\",\"Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.\",\"Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe.\"],\"links\":{\"guide\":\"https://saferpage.de/guides/security-header-setzen\",\"evidence\":\"https://saferpage.de/befunde/selfservice.nuernberger.de\",\"rescan\":\"https://saferpage.de/scanbetrieb/selfservice.nuernberger.de\",\"report\":\"https://saferpage.de/selfservice.nuernberger.de\",\"fix_guides\":\"https://saferpage.de/fix-guides/selfservice.nuernberger.de\"}}",
            "canonical_body_sha256": "31a62f2769cc3afa4fa1c90bc8016f9a84fe7deffa2525e6d1b60f096a233733",
            "slack_payload": {
                "text": "[HOCH] selfservice.nuernberger.de: X-Content-Type-Options fehlt",
                "blocks": [
                    {
                        "type": "section",
                        "text": {
                            "type": "mrkdwn",
                            "text": "*X-Content-Type-Options fehlt*\nHeader `x-content-type-options` setzen und nach Deployment erneut prüfen."
                        }
                    },
                    {
                        "type": "context",
                        "elements": [
                            {
                                "type": "mrkdwn",
                                "text": "Verantwortlich: Website-Betrieb/Datenschutz · Zielzeit: 7 Tage · https://saferpage.de/befunde/selfservice.nuernberger.de"
                            }
                        ]
                    }
                ]
            },
            "teams_payload": {
                "type": "message",
                "summary": "[HOCH] selfservice.nuernberger.de: X-Content-Type-Options fehlt",
                "attachments": [
                    {
                        "contentType": "application/vnd.microsoft.card.adaptive",
                        "content": {
                            "type": "AdaptiveCard",
                            "version": "1.4",
                            "body": [
                                {
                                    "type": "TextBlock",
                                    "weight": "Bolder",
                                    "text": "X-Content-Type-Options fehlt"
                                },
                                {
                                    "type": "TextBlock",
                                    "wrap": true,
                                    "text": "Header `x-content-type-options` setzen und nach Deployment erneut prüfen."
                                },
                                {
                                    "type": "FactSet",
                                    "facts": [
                                        {
                                            "title": "Domain",
                                            "value": "selfservice.nuernberger.de"
                                        },
                                        {
                                            "title": "Verantwortlich",
                                            "value": "Website-Betrieb/Datenschutz"
                                        },
                                        {
                                            "title": "Zielzeit",
                                            "value": "7 Tage"
                                        }
                                    ]
                                }
                            ]
                        }
                    }
                ]
            },
            "jira_payload": {
                "fields": {
                    "summary": "[selfservice.nuernberger.de] X-Content-Type-Options fehlt",
                    "description": "Header `x-content-type-options` setzen und nach Deployment erneut prüfen.\n\nNachweis: https://saferpage.de/befunde/selfservice.nuernberger.de\nHintergrundseite: https://saferpage.de/guides/security-header-setzen\nRe-Scan: https://saferpage.de/scanbetrieb/selfservice.nuernberger.de",
                    "labels": [
                        "saferpage",
                        "privacyops",
                        "remediation",
                        "hoch"
                    ],
                    "priority": {
                        "name": "High"
                    }
                }
            }
        },
        {
            "id": "sp-fix-5f7c0a1692ef0e7eba00aa1a",
            "ticket_id": "remediation_missing_x_frame_options",
            "channel": "jira_slack_webhook",
            "priority": "hoch",
            "severity": "critical",
            "owner": "Website-Betrieb/Datenschutz",
            "sla": "7 Tage",
            "summary": "[selfservice.nuernberger.de] X-Frame-Options fehlt",
            "description": "Header `x-frame-options` setzen und nach Deployment erneut prüfen.",
            "idempotency_key": "sp-fix-5f7c0a1692ef0e7eba00aa1a",
            "headers": {
                "X-SaferPage-Event": "operator.remediation.ticket_ready",
                "X-SaferPage-Schema": "operator-remediation-ticket-delivery.v1",
                "X-SaferPage-Idempotency-Key": "sp-fix-5f7c0a1692ef0e7eba00aa1a",
                "X-SaferPage-Body-SHA256": "5b3ca0a2df4c7953bc6dde3510756522cda5397e0432c6becfd92fce1fd78e55",
                "X-SaferPage-Signature": "sha256=<HMAC ueber canonical_webhook_body>"
            },
            "webhook_payload": {
                "event": "operator.remediation.ticket_ready",
                "domain": "selfservice.nuernberger.de",
                "scan_id": "06875d5d-62d4-44c3-a7a9-fc663d5c918e",
                "ticket_id": "remediation_missing_x_frame_options",
                "priority": "hoch",
                "severity": "critical",
                "owner": "Website-Betrieb/Datenschutz",
                "sla": "7 Tage",
                "title": "X-Frame-Options fehlt",
                "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."
                ],
                "links": {
                    "guide": "https://saferpage.de/guides/security-header-setzen",
                    "evidence": "https://saferpage.de/befunde/selfservice.nuernberger.de",
                    "rescan": "https://saferpage.de/scanbetrieb/selfservice.nuernberger.de",
                    "report": "https://saferpage.de/selfservice.nuernberger.de",
                    "fix_guides": "https://saferpage.de/fix-guides/selfservice.nuernberger.de"
                }
            },
            "canonical_webhook_body": "{\"event\":\"operator.remediation.ticket_ready\",\"domain\":\"selfservice.nuernberger.de\",\"scan_id\":\"06875d5d-62d4-44c3-a7a9-fc663d5c918e\",\"ticket_id\":\"remediation_missing_x_frame_options\",\"priority\":\"hoch\",\"severity\":\"critical\",\"owner\":\"Website-Betrieb/Datenschutz\",\"sla\":\"7 Tage\",\"title\":\"X-Frame-Options fehlt\",\"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.\"],\"links\":{\"guide\":\"https://saferpage.de/guides/security-header-setzen\",\"evidence\":\"https://saferpage.de/befunde/selfservice.nuernberger.de\",\"rescan\":\"https://saferpage.de/scanbetrieb/selfservice.nuernberger.de\",\"report\":\"https://saferpage.de/selfservice.nuernberger.de\",\"fix_guides\":\"https://saferpage.de/fix-guides/selfservice.nuernberger.de\"}}",
            "canonical_body_sha256": "5b3ca0a2df4c7953bc6dde3510756522cda5397e0432c6becfd92fce1fd78e55",
            "slack_payload": {
                "text": "[HOCH] selfservice.nuernberger.de: X-Frame-Options fehlt",
                "blocks": [
                    {
                        "type": "section",
                        "text": {
                            "type": "mrkdwn",
                            "text": "*X-Frame-Options fehlt*\nHeader `x-frame-options` setzen und nach Deployment erneut prüfen."
                        }
                    },
                    {
                        "type": "context",
                        "elements": [
                            {
                                "type": "mrkdwn",
                                "text": "Verantwortlich: Website-Betrieb/Datenschutz · Zielzeit: 7 Tage · https://saferpage.de/befunde/selfservice.nuernberger.de"
                            }
                        ]
                    }
                ]
            },
            "teams_payload": {
                "type": "message",
                "summary": "[HOCH] selfservice.nuernberger.de: X-Frame-Options fehlt",
                "attachments": [
                    {
                        "contentType": "application/vnd.microsoft.card.adaptive",
                        "content": {
                            "type": "AdaptiveCard",
                            "version": "1.4",
                            "body": [
                                {
                                    "type": "TextBlock",
                                    "weight": "Bolder",
                                    "text": "X-Frame-Options fehlt"
                                },
                                {
                                    "type": "TextBlock",
                                    "wrap": true,
                                    "text": "Header `x-frame-options` setzen und nach Deployment erneut prüfen."
                                },
                                {
                                    "type": "FactSet",
                                    "facts": [
                                        {
                                            "title": "Domain",
                                            "value": "selfservice.nuernberger.de"
                                        },
                                        {
                                            "title": "Verantwortlich",
                                            "value": "Website-Betrieb/Datenschutz"
                                        },
                                        {
                                            "title": "Zielzeit",
                                            "value": "7 Tage"
                                        }
                                    ]
                                }
                            ]
                        }
                    }
                ]
            },
            "jira_payload": {
                "fields": {
                    "summary": "[selfservice.nuernberger.de] X-Frame-Options fehlt",
                    "description": "Header `x-frame-options` setzen und nach Deployment erneut prüfen.\n\nNachweis: https://saferpage.de/befunde/selfservice.nuernberger.de\nHintergrundseite: https://saferpage.de/guides/security-header-setzen\nRe-Scan: https://saferpage.de/scanbetrieb/selfservice.nuernberger.de",
                    "labels": [
                        "saferpage",
                        "privacyops",
                        "remediation",
                        "hoch"
                    ],
                    "priority": {
                        "name": "High"
                    }
                }
            }
        },
        {
            "id": "sp-fix-5dd366e37a4b3d0f0517fd19",
            "ticket_id": "remediation_module_privacy_consent",
            "channel": "jira_webhook",
            "priority": "mittel",
            "severity": "warning",
            "owner": "Website-Betrieb/Datenschutz",
            "sla": "30 Tage",
            "summary": "[selfservice.nuernberger.de] Datenschutz, Cookies & Consent",
            "description": "Tracking, Werbung und nicht notwendige Cookies vor Zustimmung blockieren und verständlich erklären.",
            "idempotency_key": "sp-fix-5dd366e37a4b3d0f0517fd19",
            "headers": {
                "X-SaferPage-Event": "operator.remediation.ticket_ready",
                "X-SaferPage-Schema": "operator-remediation-ticket-delivery.v1",
                "X-SaferPage-Idempotency-Key": "sp-fix-5dd366e37a4b3d0f0517fd19",
                "X-SaferPage-Body-SHA256": "9abea76899fcc329e3d16f908b82ab92b33ddb02bda71adc5ddf3ca0266415e6",
                "X-SaferPage-Signature": "sha256=<HMAC ueber canonical_webhook_body>"
            },
            "webhook_payload": {
                "event": "operator.remediation.ticket_ready",
                "domain": "selfservice.nuernberger.de",
                "scan_id": "06875d5d-62d4-44c3-a7a9-fc663d5c918e",
                "ticket_id": "remediation_module_privacy_consent",
                "priority": "mittel",
                "severity": "warning",
                "owner": "Website-Betrieb/Datenschutz",
                "sla": "30 Tage",
                "title": "Datenschutz, Cookies & Consent",
                "evidence": "0 Tracking-Script(s), 2 Cookie(s) vor Einwilligung, 0 Tracking-Cookie(s), Ablehnen-Option: ja, Consent-Audit: 88.",
                "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."
                ],
                "links": {
                    "guide": "https://saferpage.de/guides/tracking-und-consent-reparieren",
                    "evidence": "https://saferpage.de/befunde/selfservice.nuernberger.de",
                    "rescan": "https://saferpage.de/scanbetrieb/selfservice.nuernberger.de",
                    "report": "https://saferpage.de/selfservice.nuernberger.de",
                    "fix_guides": "https://saferpage.de/fix-guides/selfservice.nuernberger.de"
                }
            },
            "canonical_webhook_body": "{\"event\":\"operator.remediation.ticket_ready\",\"domain\":\"selfservice.nuernberger.de\",\"scan_id\":\"06875d5d-62d4-44c3-a7a9-fc663d5c918e\",\"ticket_id\":\"remediation_module_privacy_consent\",\"priority\":\"mittel\",\"severity\":\"warning\",\"owner\":\"Website-Betrieb/Datenschutz\",\"sla\":\"30 Tage\",\"title\":\"Datenschutz, Cookies & Consent\",\"evidence\":\"0 Tracking-Script(s), 2 Cookie(s) vor Einwilligung, 0 Tracking-Cookie(s), Ablehnen-Option: ja, Consent-Audit: 88.\",\"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.\"],\"links\":{\"guide\":\"https://saferpage.de/guides/tracking-und-consent-reparieren\",\"evidence\":\"https://saferpage.de/befunde/selfservice.nuernberger.de\",\"rescan\":\"https://saferpage.de/scanbetrieb/selfservice.nuernberger.de\",\"report\":\"https://saferpage.de/selfservice.nuernberger.de\",\"fix_guides\":\"https://saferpage.de/fix-guides/selfservice.nuernberger.de\"}}",
            "canonical_body_sha256": "9abea76899fcc329e3d16f908b82ab92b33ddb02bda71adc5ddf3ca0266415e6",
            "slack_payload": {
                "text": "[MITTEL] selfservice.nuernberger.de: Datenschutz, Cookies & Consent",
                "blocks": [
                    {
                        "type": "section",
                        "text": {
                            "type": "mrkdwn",
                            "text": "*Datenschutz, Cookies & Consent*\nTracking, Werbung und nicht notwendige Cookies vor Zustimmung blockieren und verständlich erklären."
                        }
                    },
                    {
                        "type": "context",
                        "elements": [
                            {
                                "type": "mrkdwn",
                                "text": "Verantwortlich: Website-Betrieb/Datenschutz · Zielzeit: 30 Tage · https://saferpage.de/befunde/selfservice.nuernberger.de"
                            }
                        ]
                    }
                ]
            },
            "teams_payload": {
                "type": "message",
                "summary": "[MITTEL] selfservice.nuernberger.de: Datenschutz, Cookies & Consent",
                "attachments": [
                    {
                        "contentType": "application/vnd.microsoft.card.adaptive",
                        "content": {
                            "type": "AdaptiveCard",
                            "version": "1.4",
                            "body": [
                                {
                                    "type": "TextBlock",
                                    "weight": "Bolder",
                                    "text": "Datenschutz, Cookies & Consent"
                                },
                                {
                                    "type": "TextBlock",
                                    "wrap": true,
                                    "text": "Tracking, Werbung und nicht notwendige Cookies vor Zustimmung blockieren und verständlich erklären."
                                },
                                {
                                    "type": "FactSet",
                                    "facts": [
                                        {
                                            "title": "Domain",
                                            "value": "selfservice.nuernberger.de"
                                        },
                                        {
                                            "title": "Verantwortlich",
                                            "value": "Website-Betrieb/Datenschutz"
                                        },
                                        {
                                            "title": "Zielzeit",
                                            "value": "30 Tage"
                                        }
                                    ]
                                }
                            ]
                        }
                    }
                ]
            },
            "jira_payload": {
                "fields": {
                    "summary": "[selfservice.nuernberger.de] Datenschutz, Cookies & Consent",
                    "description": "Tracking, Werbung und nicht notwendige Cookies vor Zustimmung blockieren und verständlich erklären.\n\nNachweis: https://saferpage.de/befunde/selfservice.nuernberger.de\nHintergrundseite: https://saferpage.de/guides/tracking-und-consent-reparieren\nRe-Scan: https://saferpage.de/scanbetrieb/selfservice.nuernberger.de",
                    "labels": [
                        "saferpage",
                        "privacyops",
                        "remediation",
                        "mittel"
                    ],
                    "priority": {
                        "name": "Medium"
                    }
                }
            }
        },
        {
            "id": "sp-fix-228a716ba84e4c32ed95e9ea",
            "ticket_id": "mapping_cookie_next_locale",
            "channel": "jira_webhook",
            "priority": "mittel",
            "severity": "warning",
            "owner": "Marketing/IT/Datenschutz",
            "sla": "30 Tage",
            "summary": "[selfservice.nuernberger.de] NEXT_LOCALE",
            "description": "Zweck, Laufzeit, Anbieter und Consent-Erfordernis in Cookie-Erklärung und CMP pflegen.",
            "idempotency_key": "sp-fix-228a716ba84e4c32ed95e9ea",
            "headers": {
                "X-SaferPage-Event": "operator.remediation.ticket_ready",
                "X-SaferPage-Schema": "operator-remediation-ticket-delivery.v1",
                "X-SaferPage-Idempotency-Key": "sp-fix-228a716ba84e4c32ed95e9ea",
                "X-SaferPage-Body-SHA256": "2bd8a828e785b5e635ddef43cdf49c26f8ed72230d2546ce1ade4b83310ddfc9",
                "X-SaferPage-Signature": "sha256=<HMAC ueber canonical_webhook_body>"
            },
            "webhook_payload": {
                "event": "operator.remediation.ticket_ready",
                "domain": "selfservice.nuernberger.de",
                "scan_id": "06875d5d-62d4-44c3-a7a9-fc663d5c918e",
                "ticket_id": "mapping_cookie_next_locale",
                "priority": "mittel",
                "severity": "warning",
                "owner": "Marketing/IT/Datenschutz",
                "sla": "30 Tage",
                "title": "NEXT_LOCALE",
                "evidence": "selfservice.nuernberger.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."
                ],
                "links": {
                    "guide": "https://saferpage.de/guides/cookie-laufzeiten-und-zwecke-pruefen",
                    "evidence": "https://saferpage.de/cookies/selfservice.nuernberger.de",
                    "rescan": "https://saferpage.de/scanbetrieb/selfservice.nuernberger.de",
                    "report": "https://saferpage.de/selfservice.nuernberger.de",
                    "fix_guides": "https://saferpage.de/fix-guides/selfservice.nuernberger.de"
                }
            },
            "canonical_webhook_body": "{\"event\":\"operator.remediation.ticket_ready\",\"domain\":\"selfservice.nuernberger.de\",\"scan_id\":\"06875d5d-62d4-44c3-a7a9-fc663d5c918e\",\"ticket_id\":\"mapping_cookie_next_locale\",\"priority\":\"mittel\",\"severity\":\"warning\",\"owner\":\"Marketing/IT/Datenschutz\",\"sla\":\"30 Tage\",\"title\":\"NEXT_LOCALE\",\"evidence\":\"selfservice.nuernberger.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.\"],\"links\":{\"guide\":\"https://saferpage.de/guides/cookie-laufzeiten-und-zwecke-pruefen\",\"evidence\":\"https://saferpage.de/cookies/selfservice.nuernberger.de\",\"rescan\":\"https://saferpage.de/scanbetrieb/selfservice.nuernberger.de\",\"report\":\"https://saferpage.de/selfservice.nuernberger.de\",\"fix_guides\":\"https://saferpage.de/fix-guides/selfservice.nuernberger.de\"}}",
            "canonical_body_sha256": "2bd8a828e785b5e635ddef43cdf49c26f8ed72230d2546ce1ade4b83310ddfc9",
            "slack_payload": {
                "text": "[MITTEL] selfservice.nuernberger.de: NEXT_LOCALE",
                "blocks": [
                    {
                        "type": "section",
                        "text": {
                            "type": "mrkdwn",
                            "text": "*NEXT_LOCALE*\nZweck, Laufzeit, Anbieter und Consent-Erfordernis in Cookie-Erklärung und CMP pflegen."
                        }
                    },
                    {
                        "type": "context",
                        "elements": [
                            {
                                "type": "mrkdwn",
                                "text": "Verantwortlich: Marketing/IT/Datenschutz · Zielzeit: 30 Tage · https://saferpage.de/cookies/selfservice.nuernberger.de"
                            }
                        ]
                    }
                ]
            },
            "teams_payload": {
                "type": "message",
                "summary": "[MITTEL] selfservice.nuernberger.de: NEXT_LOCALE",
                "attachments": [
                    {
                        "contentType": "application/vnd.microsoft.card.adaptive",
                        "content": {
                            "type": "AdaptiveCard",
                            "version": "1.4",
                            "body": [
                                {
                                    "type": "TextBlock",
                                    "weight": "Bolder",
                                    "text": "NEXT_LOCALE"
                                },
                                {
                                    "type": "TextBlock",
                                    "wrap": true,
                                    "text": "Zweck, Laufzeit, Anbieter und Consent-Erfordernis in Cookie-Erklärung und CMP pflegen."
                                },
                                {
                                    "type": "FactSet",
                                    "facts": [
                                        {
                                            "title": "Domain",
                                            "value": "selfservice.nuernberger.de"
                                        },
                                        {
                                            "title": "Verantwortlich",
                                            "value": "Marketing/IT/Datenschutz"
                                        },
                                        {
                                            "title": "Zielzeit",
                                            "value": "30 Tage"
                                        }
                                    ]
                                }
                            ]
                        }
                    }
                ]
            },
            "jira_payload": {
                "fields": {
                    "summary": "[selfservice.nuernberger.de] NEXT_LOCALE",
                    "description": "Zweck, Laufzeit, Anbieter und Consent-Erfordernis in Cookie-Erklärung und CMP pflegen.\n\nNachweis: https://saferpage.de/cookies/selfservice.nuernberger.de\nHintergrundseite: https://saferpage.de/guides/cookie-laufzeiten-und-zwecke-pruefen\nRe-Scan: https://saferpage.de/scanbetrieb/selfservice.nuernberger.de",
                    "labels": [
                        "saferpage",
                        "privacyops",
                        "remediation",
                        "mittel"
                    ],
                    "priority": {
                        "name": "Medium"
                    }
                }
            }
        },
        {
            "id": "sp-fix-a0c252d8bf47a0c93fe65880",
            "ticket_id": "remediation_module_site_coverage",
            "channel": "jira_webhook",
            "priority": "mittel",
            "severity": "warning",
            "owner": "Website-Betrieb/Datenschutz",
            "sla": "30 Tage",
            "summary": "[selfservice.nuernberger.de] Seitenabdeckung & Crawl",
            "description": "Datenschutz, Impressum, Kontakt, Cookie-Hinweise und kritische Formularseiten klar verlinken und regelmäßig mitprüfen.",
            "idempotency_key": "sp-fix-a0c252d8bf47a0c93fe65880",
            "headers": {
                "X-SaferPage-Event": "operator.remediation.ticket_ready",
                "X-SaferPage-Schema": "operator-remediation-ticket-delivery.v1",
                "X-SaferPage-Idempotency-Key": "sp-fix-a0c252d8bf47a0c93fe65880",
                "X-SaferPage-Body-SHA256": "f9a9b86ebbb78ee9e133e94fcad2c89f4836216e6dd4c4f64c5a00a57e05688c",
                "X-SaferPage-Signature": "sha256=<HMAC ueber canonical_webhook_body>"
            },
            "webhook_payload": {
                "event": "operator.remediation.ticket_ready",
                "domain": "selfservice.nuernberger.de",
                "scan_id": "06875d5d-62d4-44c3-a7a9-fc663d5c918e",
                "ticket_id": "remediation_module_site_coverage",
                "priority": "mittel",
                "severity": "warning",
                "owner": "Website-Betrieb/Datenschutz",
                "sla": "30 Tage",
                "title": "Seitenabdeckung & Crawl",
                "evidence": "30 interne Linkziele erkannt, 4 priorisierte Unterseite(n) abgerufen.",
                "action": "Datenschutz, Impressum, Kontakt, Cookie-Hinweise und kritische Formularseiten klar verlinken und regelmäßig mitprü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."
                ],
                "links": {
                    "guide": "https://saferpage.de/guides/datenschutz-webseiten-pruefkatalog",
                    "evidence": "https://saferpage.de/befunde/selfservice.nuernberger.de",
                    "rescan": "https://saferpage.de/scanbetrieb/selfservice.nuernberger.de",
                    "report": "https://saferpage.de/selfservice.nuernberger.de",
                    "fix_guides": "https://saferpage.de/fix-guides/selfservice.nuernberger.de"
                }
            },
            "canonical_webhook_body": "{\"event\":\"operator.remediation.ticket_ready\",\"domain\":\"selfservice.nuernberger.de\",\"scan_id\":\"06875d5d-62d4-44c3-a7a9-fc663d5c918e\",\"ticket_id\":\"remediation_module_site_coverage\",\"priority\":\"mittel\",\"severity\":\"warning\",\"owner\":\"Website-Betrieb/Datenschutz\",\"sla\":\"30 Tage\",\"title\":\"Seitenabdeckung & Crawl\",\"evidence\":\"30 interne Linkziele erkannt, 4 priorisierte Unterseite(n) abgerufen.\",\"action\":\"Datenschutz, Impressum, Kontakt, Cookie-Hinweise und kritische Formularseiten klar verlinken und regelmäßig mitprü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.\"],\"links\":{\"guide\":\"https://saferpage.de/guides/datenschutz-webseiten-pruefkatalog\",\"evidence\":\"https://saferpage.de/befunde/selfservice.nuernberger.de\",\"rescan\":\"https://saferpage.de/scanbetrieb/selfservice.nuernberger.de\",\"report\":\"https://saferpage.de/selfservice.nuernberger.de\",\"fix_guides\":\"https://saferpage.de/fix-guides/selfservice.nuernberger.de\"}}",
            "canonical_body_sha256": "f9a9b86ebbb78ee9e133e94fcad2c89f4836216e6dd4c4f64c5a00a57e05688c",
            "slack_payload": {
                "text": "[MITTEL] selfservice.nuernberger.de: Seitenabdeckung & Crawl",
                "blocks": [
                    {
                        "type": "section",
                        "text": {
                            "type": "mrkdwn",
                            "text": "*Seitenabdeckung & Crawl*\nDatenschutz, Impressum, Kontakt, Cookie-Hinweise und kritische Formularseiten klar verlinken und regelmäßig mitprüfen."
                        }
                    },
                    {
                        "type": "context",
                        "elements": [
                            {
                                "type": "mrkdwn",
                                "text": "Verantwortlich: Website-Betrieb/Datenschutz · Zielzeit: 30 Tage · https://saferpage.de/befunde/selfservice.nuernberger.de"
                            }
                        ]
                    }
                ]
            },
            "teams_payload": {
                "type": "message",
                "summary": "[MITTEL] selfservice.nuernberger.de: Seitenabdeckung & Crawl",
                "attachments": [
                    {
                        "contentType": "application/vnd.microsoft.card.adaptive",
                        "content": {
                            "type": "AdaptiveCard",
                            "version": "1.4",
                            "body": [
                                {
                                    "type": "TextBlock",
                                    "weight": "Bolder",
                                    "text": "Seitenabdeckung & Crawl"
                                },
                                {
                                    "type": "TextBlock",
                                    "wrap": true,
                                    "text": "Datenschutz, Impressum, Kontakt, Cookie-Hinweise und kritische Formularseiten klar verlinken und regelmäßig mitprüfen."
                                },
                                {
                                    "type": "FactSet",
                                    "facts": [
                                        {
                                            "title": "Domain",
                                            "value": "selfservice.nuernberger.de"
                                        },
                                        {
                                            "title": "Verantwortlich",
                                            "value": "Website-Betrieb/Datenschutz"
                                        },
                                        {
                                            "title": "Zielzeit",
                                            "value": "30 Tage"
                                        }
                                    ]
                                }
                            ]
                        }
                    }
                ]
            },
            "jira_payload": {
                "fields": {
                    "summary": "[selfservice.nuernberger.de] Seitenabdeckung & Crawl",
                    "description": "Datenschutz, Impressum, Kontakt, Cookie-Hinweise und kritische Formularseiten klar verlinken und regelmäßig mitprüfen.\n\nNachweis: https://saferpage.de/befunde/selfservice.nuernberger.de\nHintergrundseite: https://saferpage.de/guides/datenschutz-webseiten-pruefkatalog\nRe-Scan: https://saferpage.de/scanbetrieb/selfservice.nuernberger.de",
                    "labels": [
                        "saferpage",
                        "privacyops",
                        "remediation",
                        "mittel"
                    ],
                    "priority": {
                        "name": "Medium"
                    }
                }
            }
        },
        {
            "id": "sp-fix-7361e7d8a88ac437d199cf17",
            "ticket_id": "remediation_coverage_gap",
            "channel": "jira_webhook",
            "priority": "mittel",
            "severity": "warning",
            "owner": "Webbetrieb/SEO",
            "sla": "30 Tage",
            "summary": "[selfservice.nuernberger.de] Wichtige Unterseiten, Datenschutz und Formulare crawlbar verlinken",
            "description": "Befund mit Hintergrundseite einordnen und danach erneut scannen.",
            "idempotency_key": "sp-fix-7361e7d8a88ac437d199cf17",
            "headers": {
                "X-SaferPage-Event": "operator.remediation.ticket_ready",
                "X-SaferPage-Schema": "operator-remediation-ticket-delivery.v1",
                "X-SaferPage-Idempotency-Key": "sp-fix-7361e7d8a88ac437d199cf17",
                "X-SaferPage-Body-SHA256": "84928d7e8fa700be4f85d8fcf905c32849f494ffaa52e2069116a4d5d0534e81",
                "X-SaferPage-Signature": "sha256=<HMAC ueber canonical_webhook_body>"
            },
            "webhook_payload": {
                "event": "operator.remediation.ticket_ready",
                "domain": "selfservice.nuernberger.de",
                "scan_id": "06875d5d-62d4-44c3-a7a9-fc663d5c918e",
                "ticket_id": "remediation_coverage_gap",
                "priority": "mittel",
                "severity": "warning",
                "owner": "Webbetrieb/SEO",
                "sla": "30 Tage",
                "title": "Wichtige Unterseiten, Datenschutz und Formulare crawlbar verlinken",
                "evidence": "30 interne Linkziele erkannt (66 aus Sitemap), 4 priorisierte Unterseite(n) zusätzlich abgerufen.",
                "action": "Befund mit Hintergrundseite einordnen 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."
                ],
                "links": {
                    "guide": "https://saferpage.de/guides/datenschutz-webseiten-pruefkatalog",
                    "evidence": "https://saferpage.de/befunde/selfservice.nuernberger.de",
                    "rescan": "https://saferpage.de/scanbetrieb/selfservice.nuernberger.de",
                    "report": "https://saferpage.de/selfservice.nuernberger.de",
                    "fix_guides": "https://saferpage.de/fix-guides/selfservice.nuernberger.de"
                }
            },
            "canonical_webhook_body": "{\"event\":\"operator.remediation.ticket_ready\",\"domain\":\"selfservice.nuernberger.de\",\"scan_id\":\"06875d5d-62d4-44c3-a7a9-fc663d5c918e\",\"ticket_id\":\"remediation_coverage_gap\",\"priority\":\"mittel\",\"severity\":\"warning\",\"owner\":\"Webbetrieb/SEO\",\"sla\":\"30 Tage\",\"title\":\"Wichtige Unterseiten, Datenschutz und Formulare crawlbar verlinken\",\"evidence\":\"30 interne Linkziele erkannt (66 aus Sitemap), 4 priorisierte Unterseite(n) zusätzlich abgerufen.\",\"action\":\"Befund mit Hintergrundseite einordnen 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.\"],\"links\":{\"guide\":\"https://saferpage.de/guides/datenschutz-webseiten-pruefkatalog\",\"evidence\":\"https://saferpage.de/befunde/selfservice.nuernberger.de\",\"rescan\":\"https://saferpage.de/scanbetrieb/selfservice.nuernberger.de\",\"report\":\"https://saferpage.de/selfservice.nuernberger.de\",\"fix_guides\":\"https://saferpage.de/fix-guides/selfservice.nuernberger.de\"}}",
            "canonical_body_sha256": "84928d7e8fa700be4f85d8fcf905c32849f494ffaa52e2069116a4d5d0534e81",
            "slack_payload": {
                "text": "[MITTEL] selfservice.nuernberger.de: Wichtige Unterseiten, Datenschutz und Formulare crawlbar verlinken",
                "blocks": [
                    {
                        "type": "section",
                        "text": {
                            "type": "mrkdwn",
                            "text": "*Wichtige Unterseiten, Datenschutz und Formulare crawlbar verlinken*\nBefund mit Hintergrundseite einordnen und danach erneut scannen."
                        }
                    },
                    {
                        "type": "context",
                        "elements": [
                            {
                                "type": "mrkdwn",
                                "text": "Verantwortlich: Webbetrieb/SEO · Zielzeit: 30 Tage · https://saferpage.de/befunde/selfservice.nuernberger.de"
                            }
                        ]
                    }
                ]
            },
            "teams_payload": {
                "type": "message",
                "summary": "[MITTEL] selfservice.nuernberger.de: Wichtige Unterseiten, Datenschutz und Formulare crawlbar verlinken",
                "attachments": [
                    {
                        "contentType": "application/vnd.microsoft.card.adaptive",
                        "content": {
                            "type": "AdaptiveCard",
                            "version": "1.4",
                            "body": [
                                {
                                    "type": "TextBlock",
                                    "weight": "Bolder",
                                    "text": "Wichtige Unterseiten, Datenschutz und Formulare crawlbar verlinken"
                                },
                                {
                                    "type": "TextBlock",
                                    "wrap": true,
                                    "text": "Befund mit Hintergrundseite einordnen und danach erneut scannen."
                                },
                                {
                                    "type": "FactSet",
                                    "facts": [
                                        {
                                            "title": "Domain",
                                            "value": "selfservice.nuernberger.de"
                                        },
                                        {
                                            "title": "Verantwortlich",
                                            "value": "Webbetrieb/SEO"
                                        },
                                        {
                                            "title": "Zielzeit",
                                            "value": "30 Tage"
                                        }
                                    ]
                                }
                            ]
                        }
                    }
                ]
            },
            "jira_payload": {
                "fields": {
                    "summary": "[selfservice.nuernberger.de] Wichtige Unterseiten, Datenschutz und Formulare crawlbar verlinken",
                    "description": "Befund mit Hintergrundseite einordnen und danach erneut scannen.\n\nNachweis: https://saferpage.de/befunde/selfservice.nuernberger.de\nHintergrundseite: https://saferpage.de/guides/datenschutz-webseiten-pruefkatalog\nRe-Scan: https://saferpage.de/scanbetrieb/selfservice.nuernberger.de",
                    "labels": [
                        "saferpage",
                        "privacyops",
                        "remediation",
                        "mittel"
                    ],
                    "priority": {
                        "name": "Medium"
                    }
                }
            }
        },
        {
            "id": "sp-fix-6ffec327c7567cbcb38ad708",
            "ticket_id": "mapping_cookie_bdb254a15b508d28643dfad933912ca2",
            "channel": "jira_webhook",
            "priority": "mittel",
            "severity": "warning",
            "owner": "Marketing/IT/Datenschutz",
            "sla": "30 Tage",
            "summary": "[selfservice.nuernberger.de] bdb254a15b508d28643dfad933912ca2",
            "description": "Zweck, Laufzeit, Anbieter und Consent-Erfordernis in Cookie-Erklärung und CMP pflegen.",
            "idempotency_key": "sp-fix-6ffec327c7567cbcb38ad708",
            "headers": {
                "X-SaferPage-Event": "operator.remediation.ticket_ready",
                "X-SaferPage-Schema": "operator-remediation-ticket-delivery.v1",
                "X-SaferPage-Idempotency-Key": "sp-fix-6ffec327c7567cbcb38ad708",
                "X-SaferPage-Body-SHA256": "ddc79bc1a2abd42a586c709cca2496c6526d788b1de208bbaf0324cdc8846c20",
                "X-SaferPage-Signature": "sha256=<HMAC ueber canonical_webhook_body>"
            },
            "webhook_payload": {
                "event": "operator.remediation.ticket_ready",
                "domain": "selfservice.nuernberger.de",
                "scan_id": "06875d5d-62d4-44c3-a7a9-fc663d5c918e",
                "ticket_id": "mapping_cookie_bdb254a15b508d28643dfad933912ca2",
                "priority": "mittel",
                "severity": "warning",
                "owner": "Marketing/IT/Datenschutz",
                "sla": "30 Tage",
                "title": "bdb254a15b508d28643dfad933912ca2",
                "evidence": "selfservice.nuernberger.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."
                ],
                "links": {
                    "guide": "https://saferpage.de/guides/cookie-laufzeiten-und-zwecke-pruefen",
                    "evidence": "https://saferpage.de/cookies/selfservice.nuernberger.de",
                    "rescan": "https://saferpage.de/scanbetrieb/selfservice.nuernberger.de",
                    "report": "https://saferpage.de/selfservice.nuernberger.de",
                    "fix_guides": "https://saferpage.de/fix-guides/selfservice.nuernberger.de"
                }
            },
            "canonical_webhook_body": "{\"event\":\"operator.remediation.ticket_ready\",\"domain\":\"selfservice.nuernberger.de\",\"scan_id\":\"06875d5d-62d4-44c3-a7a9-fc663d5c918e\",\"ticket_id\":\"mapping_cookie_bdb254a15b508d28643dfad933912ca2\",\"priority\":\"mittel\",\"severity\":\"warning\",\"owner\":\"Marketing/IT/Datenschutz\",\"sla\":\"30 Tage\",\"title\":\"bdb254a15b508d28643dfad933912ca2\",\"evidence\":\"selfservice.nuernberger.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.\"],\"links\":{\"guide\":\"https://saferpage.de/guides/cookie-laufzeiten-und-zwecke-pruefen\",\"evidence\":\"https://saferpage.de/cookies/selfservice.nuernberger.de\",\"rescan\":\"https://saferpage.de/scanbetrieb/selfservice.nuernberger.de\",\"report\":\"https://saferpage.de/selfservice.nuernberger.de\",\"fix_guides\":\"https://saferpage.de/fix-guides/selfservice.nuernberger.de\"}}",
            "canonical_body_sha256": "ddc79bc1a2abd42a586c709cca2496c6526d788b1de208bbaf0324cdc8846c20",
            "slack_payload": {
                "text": "[MITTEL] selfservice.nuernberger.de: bdb254a15b508d28643dfad933912ca2",
                "blocks": [
                    {
                        "type": "section",
                        "text": {
                            "type": "mrkdwn",
                            "text": "*bdb254a15b508d28643dfad933912ca2*\nZweck, Laufzeit, Anbieter und Consent-Erfordernis in Cookie-Erklärung und CMP pflegen."
                        }
                    },
                    {
                        "type": "context",
                        "elements": [
                            {
                                "type": "mrkdwn",
                                "text": "Verantwortlich: Marketing/IT/Datenschutz · Zielzeit: 30 Tage · https://saferpage.de/cookies/selfservice.nuernberger.de"
                            }
                        ]
                    }
                ]
            },
            "teams_payload": {
                "type": "message",
                "summary": "[MITTEL] selfservice.nuernberger.de: bdb254a15b508d28643dfad933912ca2",
                "attachments": [
                    {
                        "contentType": "application/vnd.microsoft.card.adaptive",
                        "content": {
                            "type": "AdaptiveCard",
                            "version": "1.4",
                            "body": [
                                {
                                    "type": "TextBlock",
                                    "weight": "Bolder",
                                    "text": "bdb254a15b508d28643dfad933912ca2"
                                },
                                {
                                    "type": "TextBlock",
                                    "wrap": true,
                                    "text": "Zweck, Laufzeit, Anbieter und Consent-Erfordernis in Cookie-Erklärung und CMP pflegen."
                                },
                                {
                                    "type": "FactSet",
                                    "facts": [
                                        {
                                            "title": "Domain",
                                            "value": "selfservice.nuernberger.de"
                                        },
                                        {
                                            "title": "Verantwortlich",
                                            "value": "Marketing/IT/Datenschutz"
                                        },
                                        {
                                            "title": "Zielzeit",
                                            "value": "30 Tage"
                                        }
                                    ]
                                }
                            ]
                        }
                    }
                ]
            },
            "jira_payload": {
                "fields": {
                    "summary": "[selfservice.nuernberger.de] bdb254a15b508d28643dfad933912ca2",
                    "description": "Zweck, Laufzeit, Anbieter und Consent-Erfordernis in Cookie-Erklärung und CMP pflegen.\n\nNachweis: https://saferpage.de/cookies/selfservice.nuernberger.de\nHintergrundseite: https://saferpage.de/guides/cookie-laufzeiten-und-zwecke-pruefen\nRe-Scan: https://saferpage.de/scanbetrieb/selfservice.nuernberger.de",
                    "labels": [
                        "saferpage",
                        "privacyops",
                        "remediation",
                        "mittel"
                    ],
                    "priority": {
                        "name": "Medium"
                    }
                }
            }
        },
        {
            "id": "sp-fix-c41406a0574c185a7d23beeb",
            "ticket_id": "remediation_operator_identity_unclear",
            "channel": "jira_webhook",
            "priority": "niedrig",
            "severity": "info",
            "owner": "Website-Betrieb/Datenschutz",
            "sla": "quartalsweise",
            "summary": "[selfservice.nuernberger.de] Betreiberidentität wirkt unklar",
            "description": "Prüfen, ob Firma/Name und ladungsfähige Anschrift im Impressum vollständig erkennbar sind.",
            "idempotency_key": "sp-fix-c41406a0574c185a7d23beeb",
            "headers": {
                "X-SaferPage-Event": "operator.remediation.ticket_ready",
                "X-SaferPage-Schema": "operator-remediation-ticket-delivery.v1",
                "X-SaferPage-Idempotency-Key": "sp-fix-c41406a0574c185a7d23beeb",
                "X-SaferPage-Body-SHA256": "ceee59162ccb896b71b78b4685ee3fac8bf9d26a6e6ee348feca2a62bbc74b6f",
                "X-SaferPage-Signature": "sha256=<HMAC ueber canonical_webhook_body>"
            },
            "webhook_payload": {
                "event": "operator.remediation.ticket_ready",
                "domain": "selfservice.nuernberger.de",
                "scan_id": "06875d5d-62d4-44c3-a7a9-fc663d5c918e",
                "ticket_id": "remediation_operator_identity_unclear",
                "priority": "niedrig",
                "severity": "info",
                "owner": "Website-Betrieb/Datenschutz",
                "sla": "quartalsweise",
                "title": "Betreiberidentität wirkt unklar",
                "evidence": "",
                "action": "Prüfen, ob Firma/Name und ladungsfähige Anschrift im Impressum vollständig erkennbar sind.",
                "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."
                ],
                "links": {
                    "guide": "https://saferpage.de/guides/impressum-und-kontakt-sichtbar-machen",
                    "evidence": "https://saferpage.de/befunde/selfservice.nuernberger.de",
                    "rescan": "https://saferpage.de/scanbetrieb/selfservice.nuernberger.de",
                    "report": "https://saferpage.de/selfservice.nuernberger.de",
                    "fix_guides": "https://saferpage.de/fix-guides/selfservice.nuernberger.de"
                }
            },
            "canonical_webhook_body": "{\"event\":\"operator.remediation.ticket_ready\",\"domain\":\"selfservice.nuernberger.de\",\"scan_id\":\"06875d5d-62d4-44c3-a7a9-fc663d5c918e\",\"ticket_id\":\"remediation_operator_identity_unclear\",\"priority\":\"niedrig\",\"severity\":\"info\",\"owner\":\"Website-Betrieb/Datenschutz\",\"sla\":\"quartalsweise\",\"title\":\"Betreiberidentität wirkt unklar\",\"evidence\":\"\",\"action\":\"Prüfen, ob Firma/Name und ladungsfähige Anschrift im Impressum vollständig erkennbar sind.\",\"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.\"],\"links\":{\"guide\":\"https://saferpage.de/guides/impressum-und-kontakt-sichtbar-machen\",\"evidence\":\"https://saferpage.de/befunde/selfservice.nuernberger.de\",\"rescan\":\"https://saferpage.de/scanbetrieb/selfservice.nuernberger.de\",\"report\":\"https://saferpage.de/selfservice.nuernberger.de\",\"fix_guides\":\"https://saferpage.de/fix-guides/selfservice.nuernberger.de\"}}",
            "canonical_body_sha256": "ceee59162ccb896b71b78b4685ee3fac8bf9d26a6e6ee348feca2a62bbc74b6f",
            "slack_payload": {
                "text": "[NIEDRIG] selfservice.nuernberger.de: Betreiberidentität wirkt unklar",
                "blocks": [
                    {
                        "type": "section",
                        "text": {
                            "type": "mrkdwn",
                            "text": "*Betreiberidentität wirkt unklar*\nPrüfen, ob Firma/Name und ladungsfähige Anschrift im Impressum vollständig erkennbar sind."
                        }
                    },
                    {
                        "type": "context",
                        "elements": [
                            {
                                "type": "mrkdwn",
                                "text": "Verantwortlich: Website-Betrieb/Datenschutz · Zielzeit: quartalsweise · https://saferpage.de/befunde/selfservice.nuernberger.de"
                            }
                        ]
                    }
                ]
            },
            "teams_payload": {
                "type": "message",
                "summary": "[NIEDRIG] selfservice.nuernberger.de: Betreiberidentität wirkt unklar",
                "attachments": [
                    {
                        "contentType": "application/vnd.microsoft.card.adaptive",
                        "content": {
                            "type": "AdaptiveCard",
                            "version": "1.4",
                            "body": [
                                {
                                    "type": "TextBlock",
                                    "weight": "Bolder",
                                    "text": "Betreiberidentität wirkt unklar"
                                },
                                {
                                    "type": "TextBlock",
                                    "wrap": true,
                                    "text": "Prüfen, ob Firma/Name und ladungsfähige Anschrift im Impressum vollständig erkennbar sind."
                                },
                                {
                                    "type": "FactSet",
                                    "facts": [
                                        {
                                            "title": "Domain",
                                            "value": "selfservice.nuernberger.de"
                                        },
                                        {
                                            "title": "Verantwortlich",
                                            "value": "Website-Betrieb/Datenschutz"
                                        },
                                        {
                                            "title": "Zielzeit",
                                            "value": "quartalsweise"
                                        }
                                    ]
                                }
                            ]
                        }
                    }
                ]
            },
            "jira_payload": {
                "fields": {
                    "summary": "[selfservice.nuernberger.de] Betreiberidentität wirkt unklar",
                    "description": "Prüfen, ob Firma/Name und ladungsfähige Anschrift im Impressum vollständig erkennbar sind.\n\nNachweis: https://saferpage.de/befunde/selfservice.nuernberger.de\nHintergrundseite: https://saferpage.de/guides/impressum-und-kontakt-sichtbar-machen\nRe-Scan: https://saferpage.de/scanbetrieb/selfservice.nuernberger.de",
                    "labels": [
                        "saferpage",
                        "privacyops",
                        "remediation",
                        "niedrig"
                    ],
                    "priority": {
                        "name": "Low"
                    }
                }
            }
        },
        {
            "id": "sp-fix-a6a6079baeb2b5b3a113131e",
            "ticket_id": "remediation_image_alt_missing",
            "channel": "jira_webhook",
            "priority": "niedrig",
            "severity": "info",
            "owner": "Website-Betrieb/Datenschutz",
            "sla": "quartalsweise",
            "summary": "[selfservice.nuernberger.de] Bilder ohne Alternativtext",
            "description": "Inhaltliche Bilder mit alt-Text versehen; dekorative Bilder mit leerem alt oder aria-hidden kennzeichnen.",
            "idempotency_key": "sp-fix-a6a6079baeb2b5b3a113131e",
            "headers": {
                "X-SaferPage-Event": "operator.remediation.ticket_ready",
                "X-SaferPage-Schema": "operator-remediation-ticket-delivery.v1",
                "X-SaferPage-Idempotency-Key": "sp-fix-a6a6079baeb2b5b3a113131e",
                "X-SaferPage-Body-SHA256": "dd5a4a1ef34afd14b4edc84050c50b18709f6a0929e4e4aa3ff9cb54b24653e0",
                "X-SaferPage-Signature": "sha256=<HMAC ueber canonical_webhook_body>"
            },
            "webhook_payload": {
                "event": "operator.remediation.ticket_ready",
                "domain": "selfservice.nuernberger.de",
                "scan_id": "06875d5d-62d4-44c3-a7a9-fc663d5c918e",
                "ticket_id": "remediation_image_alt_missing",
                "priority": "niedrig",
                "severity": "info",
                "owner": "Website-Betrieb/Datenschutz",
                "sla": "quartalsweise",
                "title": "Bilder ohne Alternativtext",
                "evidence": "",
                "action": "Inhaltliche Bilder mit alt-Text versehen; dekorative Bilder mit leerem alt oder aria-hidden kennzeichnen.",
                "acceptance_criteria": [
                    "Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.",
                    "Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.",
                    "Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe."
                ],
                "links": {
                    "guide": "https://saferpage.de/guides/barrierefreiheit-cookie-banner-formulare",
                    "evidence": "https://saferpage.de/befunde/selfservice.nuernberger.de",
                    "rescan": "https://saferpage.de/scanbetrieb/selfservice.nuernberger.de",
                    "report": "https://saferpage.de/selfservice.nuernberger.de",
                    "fix_guides": "https://saferpage.de/fix-guides/selfservice.nuernberger.de"
                }
            },
            "canonical_webhook_body": "{\"event\":\"operator.remediation.ticket_ready\",\"domain\":\"selfservice.nuernberger.de\",\"scan_id\":\"06875d5d-62d4-44c3-a7a9-fc663d5c918e\",\"ticket_id\":\"remediation_image_alt_missing\",\"priority\":\"niedrig\",\"severity\":\"info\",\"owner\":\"Website-Betrieb/Datenschutz\",\"sla\":\"quartalsweise\",\"title\":\"Bilder ohne Alternativtext\",\"evidence\":\"\",\"action\":\"Inhaltliche Bilder mit alt-Text versehen; dekorative Bilder mit leerem alt oder aria-hidden kennzeichnen.\",\"acceptance_criteria\":[\"Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.\",\"Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.\",\"Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe.\"],\"links\":{\"guide\":\"https://saferpage.de/guides/barrierefreiheit-cookie-banner-formulare\",\"evidence\":\"https://saferpage.de/befunde/selfservice.nuernberger.de\",\"rescan\":\"https://saferpage.de/scanbetrieb/selfservice.nuernberger.de\",\"report\":\"https://saferpage.de/selfservice.nuernberger.de\",\"fix_guides\":\"https://saferpage.de/fix-guides/selfservice.nuernberger.de\"}}",
            "canonical_body_sha256": "dd5a4a1ef34afd14b4edc84050c50b18709f6a0929e4e4aa3ff9cb54b24653e0",
            "slack_payload": {
                "text": "[NIEDRIG] selfservice.nuernberger.de: Bilder ohne Alternativtext",
                "blocks": [
                    {
                        "type": "section",
                        "text": {
                            "type": "mrkdwn",
                            "text": "*Bilder ohne Alternativtext*\nInhaltliche Bilder mit alt-Text versehen; dekorative Bilder mit leerem alt oder aria-hidden kennzeichnen."
                        }
                    },
                    {
                        "type": "context",
                        "elements": [
                            {
                                "type": "mrkdwn",
                                "text": "Verantwortlich: Website-Betrieb/Datenschutz · Zielzeit: quartalsweise · https://saferpage.de/befunde/selfservice.nuernberger.de"
                            }
                        ]
                    }
                ]
            },
            "teams_payload": {
                "type": "message",
                "summary": "[NIEDRIG] selfservice.nuernberger.de: Bilder ohne Alternativtext",
                "attachments": [
                    {
                        "contentType": "application/vnd.microsoft.card.adaptive",
                        "content": {
                            "type": "AdaptiveCard",
                            "version": "1.4",
                            "body": [
                                {
                                    "type": "TextBlock",
                                    "weight": "Bolder",
                                    "text": "Bilder ohne Alternativtext"
                                },
                                {
                                    "type": "TextBlock",
                                    "wrap": true,
                                    "text": "Inhaltliche Bilder mit alt-Text versehen; dekorative Bilder mit leerem alt oder aria-hidden kennzeichnen."
                                },
                                {
                                    "type": "FactSet",
                                    "facts": [
                                        {
                                            "title": "Domain",
                                            "value": "selfservice.nuernberger.de"
                                        },
                                        {
                                            "title": "Verantwortlich",
                                            "value": "Website-Betrieb/Datenschutz"
                                        },
                                        {
                                            "title": "Zielzeit",
                                            "value": "quartalsweise"
                                        }
                                    ]
                                }
                            ]
                        }
                    }
                ]
            },
            "jira_payload": {
                "fields": {
                    "summary": "[selfservice.nuernberger.de] Bilder ohne Alternativtext",
                    "description": "Inhaltliche Bilder mit alt-Text versehen; dekorative Bilder mit leerem alt oder aria-hidden kennzeichnen.\n\nNachweis: https://saferpage.de/befunde/selfservice.nuernberger.de\nHintergrundseite: https://saferpage.de/guides/barrierefreiheit-cookie-banner-formulare\nRe-Scan: https://saferpage.de/scanbetrieb/selfservice.nuernberger.de",
                    "labels": [
                        "saferpage",
                        "privacyops",
                        "remediation",
                        "niedrig"
                    ],
                    "priority": {
                        "name": "Low"
                    }
                }
            }
        },
        {
            "id": "sp-fix-a36b2a8384482caa9cdc7452",
            "ticket_id": "remediation_missing_cross_origin_embedder_policy",
            "channel": "jira_webhook",
            "priority": "niedrig",
            "severity": "info",
            "owner": "Website-Betrieb/Datenschutz",
            "sla": "quartalsweise",
            "summary": "[selfservice.nuernberger.de] Cross-Origin-Embedder-Policy fehlt",
            "description": "Header `cross-origin-embedder-policy` setzen und nach Deployment erneut prüfen.",
            "idempotency_key": "sp-fix-a36b2a8384482caa9cdc7452",
            "headers": {
                "X-SaferPage-Event": "operator.remediation.ticket_ready",
                "X-SaferPage-Schema": "operator-remediation-ticket-delivery.v1",
                "X-SaferPage-Idempotency-Key": "sp-fix-a36b2a8384482caa9cdc7452",
                "X-SaferPage-Body-SHA256": "c11cf227c81ec8e6c19804412fec236e1c947afc56232a8f47a2eea328c38666",
                "X-SaferPage-Signature": "sha256=<HMAC ueber canonical_webhook_body>"
            },
            "webhook_payload": {
                "event": "operator.remediation.ticket_ready",
                "domain": "selfservice.nuernberger.de",
                "scan_id": "06875d5d-62d4-44c3-a7a9-fc663d5c918e",
                "ticket_id": "remediation_missing_cross_origin_embedder_policy",
                "priority": "niedrig",
                "severity": "info",
                "owner": "Website-Betrieb/Datenschutz",
                "sla": "quartalsweise",
                "title": "Cross-Origin-Embedder-Policy fehlt",
                "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."
                ],
                "links": {
                    "guide": "https://saferpage.de/guides/security-header-setzen",
                    "evidence": "https://saferpage.de/befunde/selfservice.nuernberger.de",
                    "rescan": "https://saferpage.de/scanbetrieb/selfservice.nuernberger.de",
                    "report": "https://saferpage.de/selfservice.nuernberger.de",
                    "fix_guides": "https://saferpage.de/fix-guides/selfservice.nuernberger.de"
                }
            },
            "canonical_webhook_body": "{\"event\":\"operator.remediation.ticket_ready\",\"domain\":\"selfservice.nuernberger.de\",\"scan_id\":\"06875d5d-62d4-44c3-a7a9-fc663d5c918e\",\"ticket_id\":\"remediation_missing_cross_origin_embedder_policy\",\"priority\":\"niedrig\",\"severity\":\"info\",\"owner\":\"Website-Betrieb/Datenschutz\",\"sla\":\"quartalsweise\",\"title\":\"Cross-Origin-Embedder-Policy fehlt\",\"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.\"],\"links\":{\"guide\":\"https://saferpage.de/guides/security-header-setzen\",\"evidence\":\"https://saferpage.de/befunde/selfservice.nuernberger.de\",\"rescan\":\"https://saferpage.de/scanbetrieb/selfservice.nuernberger.de\",\"report\":\"https://saferpage.de/selfservice.nuernberger.de\",\"fix_guides\":\"https://saferpage.de/fix-guides/selfservice.nuernberger.de\"}}",
            "canonical_body_sha256": "c11cf227c81ec8e6c19804412fec236e1c947afc56232a8f47a2eea328c38666",
            "slack_payload": {
                "text": "[NIEDRIG] selfservice.nuernberger.de: Cross-Origin-Embedder-Policy fehlt",
                "blocks": [
                    {
                        "type": "section",
                        "text": {
                            "type": "mrkdwn",
                            "text": "*Cross-Origin-Embedder-Policy fehlt*\nHeader `cross-origin-embedder-policy` setzen und nach Deployment erneut prüfen."
                        }
                    },
                    {
                        "type": "context",
                        "elements": [
                            {
                                "type": "mrkdwn",
                                "text": "Verantwortlich: Website-Betrieb/Datenschutz · Zielzeit: quartalsweise · https://saferpage.de/befunde/selfservice.nuernberger.de"
                            }
                        ]
                    }
                ]
            },
            "teams_payload": {
                "type": "message",
                "summary": "[NIEDRIG] selfservice.nuernberger.de: Cross-Origin-Embedder-Policy fehlt",
                "attachments": [
                    {
                        "contentType": "application/vnd.microsoft.card.adaptive",
                        "content": {
                            "type": "AdaptiveCard",
                            "version": "1.4",
                            "body": [
                                {
                                    "type": "TextBlock",
                                    "weight": "Bolder",
                                    "text": "Cross-Origin-Embedder-Policy fehlt"
                                },
                                {
                                    "type": "TextBlock",
                                    "wrap": true,
                                    "text": "Header `cross-origin-embedder-policy` setzen und nach Deployment erneut prüfen."
                                },
                                {
                                    "type": "FactSet",
                                    "facts": [
                                        {
                                            "title": "Domain",
                                            "value": "selfservice.nuernberger.de"
                                        },
                                        {
                                            "title": "Verantwortlich",
                                            "value": "Website-Betrieb/Datenschutz"
                                        },
                                        {
                                            "title": "Zielzeit",
                                            "value": "quartalsweise"
                                        }
                                    ]
                                }
                            ]
                        }
                    }
                ]
            },
            "jira_payload": {
                "fields": {
                    "summary": "[selfservice.nuernberger.de] Cross-Origin-Embedder-Policy fehlt",
                    "description": "Header `cross-origin-embedder-policy` setzen und nach Deployment erneut prüfen.\n\nNachweis: https://saferpage.de/befunde/selfservice.nuernberger.de\nHintergrundseite: https://saferpage.de/guides/security-header-setzen\nRe-Scan: https://saferpage.de/scanbetrieb/selfservice.nuernberger.de",
                    "labels": [
                        "saferpage",
                        "privacyops",
                        "remediation",
                        "niedrig"
                    ],
                    "priority": {
                        "name": "Low"
                    }
                }
            }
        },
        {
            "id": "sp-fix-6b088d6cfc938d1c11bb9359",
            "ticket_id": "remediation_missing_cross_origin_opener_policy",
            "channel": "jira_webhook",
            "priority": "niedrig",
            "severity": "info",
            "owner": "Website-Betrieb/Datenschutz",
            "sla": "quartalsweise",
            "summary": "[selfservice.nuernberger.de] Cross-Origin-Opener-Policy fehlt",
            "description": "Header `cross-origin-opener-policy` setzen und nach Deployment erneut prüfen.",
            "idempotency_key": "sp-fix-6b088d6cfc938d1c11bb9359",
            "headers": {
                "X-SaferPage-Event": "operator.remediation.ticket_ready",
                "X-SaferPage-Schema": "operator-remediation-ticket-delivery.v1",
                "X-SaferPage-Idempotency-Key": "sp-fix-6b088d6cfc938d1c11bb9359",
                "X-SaferPage-Body-SHA256": "15e56b6a06731d98d3b14856817ce4692fe8a2574e4fbbf94982a75d97cda23d",
                "X-SaferPage-Signature": "sha256=<HMAC ueber canonical_webhook_body>"
            },
            "webhook_payload": {
                "event": "operator.remediation.ticket_ready",
                "domain": "selfservice.nuernberger.de",
                "scan_id": "06875d5d-62d4-44c3-a7a9-fc663d5c918e",
                "ticket_id": "remediation_missing_cross_origin_opener_policy",
                "priority": "niedrig",
                "severity": "info",
                "owner": "Website-Betrieb/Datenschutz",
                "sla": "quartalsweise",
                "title": "Cross-Origin-Opener-Policy fehlt",
                "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."
                ],
                "links": {
                    "guide": "https://saferpage.de/guides/security-header-setzen",
                    "evidence": "https://saferpage.de/befunde/selfservice.nuernberger.de",
                    "rescan": "https://saferpage.de/scanbetrieb/selfservice.nuernberger.de",
                    "report": "https://saferpage.de/selfservice.nuernberger.de",
                    "fix_guides": "https://saferpage.de/fix-guides/selfservice.nuernberger.de"
                }
            },
            "canonical_webhook_body": "{\"event\":\"operator.remediation.ticket_ready\",\"domain\":\"selfservice.nuernberger.de\",\"scan_id\":\"06875d5d-62d4-44c3-a7a9-fc663d5c918e\",\"ticket_id\":\"remediation_missing_cross_origin_opener_policy\",\"priority\":\"niedrig\",\"severity\":\"info\",\"owner\":\"Website-Betrieb/Datenschutz\",\"sla\":\"quartalsweise\",\"title\":\"Cross-Origin-Opener-Policy fehlt\",\"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.\"],\"links\":{\"guide\":\"https://saferpage.de/guides/security-header-setzen\",\"evidence\":\"https://saferpage.de/befunde/selfservice.nuernberger.de\",\"rescan\":\"https://saferpage.de/scanbetrieb/selfservice.nuernberger.de\",\"report\":\"https://saferpage.de/selfservice.nuernberger.de\",\"fix_guides\":\"https://saferpage.de/fix-guides/selfservice.nuernberger.de\"}}",
            "canonical_body_sha256": "15e56b6a06731d98d3b14856817ce4692fe8a2574e4fbbf94982a75d97cda23d",
            "slack_payload": {
                "text": "[NIEDRIG] selfservice.nuernberger.de: Cross-Origin-Opener-Policy fehlt",
                "blocks": [
                    {
                        "type": "section",
                        "text": {
                            "type": "mrkdwn",
                            "text": "*Cross-Origin-Opener-Policy fehlt*\nHeader `cross-origin-opener-policy` setzen und nach Deployment erneut prüfen."
                        }
                    },
                    {
                        "type": "context",
                        "elements": [
                            {
                                "type": "mrkdwn",
                                "text": "Verantwortlich: Website-Betrieb/Datenschutz · Zielzeit: quartalsweise · https://saferpage.de/befunde/selfservice.nuernberger.de"
                            }
                        ]
                    }
                ]
            },
            "teams_payload": {
                "type": "message",
                "summary": "[NIEDRIG] selfservice.nuernberger.de: Cross-Origin-Opener-Policy fehlt",
                "attachments": [
                    {
                        "contentType": "application/vnd.microsoft.card.adaptive",
                        "content": {
                            "type": "AdaptiveCard",
                            "version": "1.4",
                            "body": [
                                {
                                    "type": "TextBlock",
                                    "weight": "Bolder",
                                    "text": "Cross-Origin-Opener-Policy fehlt"
                                },
                                {
                                    "type": "TextBlock",
                                    "wrap": true,
                                    "text": "Header `cross-origin-opener-policy` setzen und nach Deployment erneut prüfen."
                                },
                                {
                                    "type": "FactSet",
                                    "facts": [
                                        {
                                            "title": "Domain",
                                            "value": "selfservice.nuernberger.de"
                                        },
                                        {
                                            "title": "Verantwortlich",
                                            "value": "Website-Betrieb/Datenschutz"
                                        },
                                        {
                                            "title": "Zielzeit",
                                            "value": "quartalsweise"
                                        }
                                    ]
                                }
                            ]
                        }
                    }
                ]
            },
            "jira_payload": {
                "fields": {
                    "summary": "[selfservice.nuernberger.de] Cross-Origin-Opener-Policy fehlt",
                    "description": "Header `cross-origin-opener-policy` setzen und nach Deployment erneut prüfen.\n\nNachweis: https://saferpage.de/befunde/selfservice.nuernberger.de\nHintergrundseite: https://saferpage.de/guides/security-header-setzen\nRe-Scan: https://saferpage.de/scanbetrieb/selfservice.nuernberger.de",
                    "labels": [
                        "saferpage",
                        "privacyops",
                        "remediation",
                        "niedrig"
                    ],
                    "priority": {
                        "name": "Low"
                    }
                }
            }
        },
        {
            "id": "sp-fix-cc795ed9627e5a06a18a3263",
            "ticket_id": "remediation_missing_cross_origin_resource_policy",
            "channel": "jira_webhook",
            "priority": "niedrig",
            "severity": "info",
            "owner": "Website-Betrieb/Datenschutz",
            "sla": "quartalsweise",
            "summary": "[selfservice.nuernberger.de] Cross-Origin-Resource-Policy fehlt",
            "description": "Header `cross-origin-resource-policy` setzen und nach Deployment erneut prüfen.",
            "idempotency_key": "sp-fix-cc795ed9627e5a06a18a3263",
            "headers": {
                "X-SaferPage-Event": "operator.remediation.ticket_ready",
                "X-SaferPage-Schema": "operator-remediation-ticket-delivery.v1",
                "X-SaferPage-Idempotency-Key": "sp-fix-cc795ed9627e5a06a18a3263",
                "X-SaferPage-Body-SHA256": "3d5b2747bb5f0469f64d34e99fca2611ada5fbf426cd0f3283085831765b6446",
                "X-SaferPage-Signature": "sha256=<HMAC ueber canonical_webhook_body>"
            },
            "webhook_payload": {
                "event": "operator.remediation.ticket_ready",
                "domain": "selfservice.nuernberger.de",
                "scan_id": "06875d5d-62d4-44c3-a7a9-fc663d5c918e",
                "ticket_id": "remediation_missing_cross_origin_resource_policy",
                "priority": "niedrig",
                "severity": "info",
                "owner": "Website-Betrieb/Datenschutz",
                "sla": "quartalsweise",
                "title": "Cross-Origin-Resource-Policy fehlt",
                "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."
                ],
                "links": {
                    "guide": "https://saferpage.de/guides/security-header-setzen",
                    "evidence": "https://saferpage.de/befunde/selfservice.nuernberger.de",
                    "rescan": "https://saferpage.de/scanbetrieb/selfservice.nuernberger.de",
                    "report": "https://saferpage.de/selfservice.nuernberger.de",
                    "fix_guides": "https://saferpage.de/fix-guides/selfservice.nuernberger.de"
                }
            },
            "canonical_webhook_body": "{\"event\":\"operator.remediation.ticket_ready\",\"domain\":\"selfservice.nuernberger.de\",\"scan_id\":\"06875d5d-62d4-44c3-a7a9-fc663d5c918e\",\"ticket_id\":\"remediation_missing_cross_origin_resource_policy\",\"priority\":\"niedrig\",\"severity\":\"info\",\"owner\":\"Website-Betrieb/Datenschutz\",\"sla\":\"quartalsweise\",\"title\":\"Cross-Origin-Resource-Policy fehlt\",\"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.\"],\"links\":{\"guide\":\"https://saferpage.de/guides/security-header-setzen\",\"evidence\":\"https://saferpage.de/befunde/selfservice.nuernberger.de\",\"rescan\":\"https://saferpage.de/scanbetrieb/selfservice.nuernberger.de\",\"report\":\"https://saferpage.de/selfservice.nuernberger.de\",\"fix_guides\":\"https://saferpage.de/fix-guides/selfservice.nuernberger.de\"}}",
            "canonical_body_sha256": "3d5b2747bb5f0469f64d34e99fca2611ada5fbf426cd0f3283085831765b6446",
            "slack_payload": {
                "text": "[NIEDRIG] selfservice.nuernberger.de: Cross-Origin-Resource-Policy fehlt",
                "blocks": [
                    {
                        "type": "section",
                        "text": {
                            "type": "mrkdwn",
                            "text": "*Cross-Origin-Resource-Policy fehlt*\nHeader `cross-origin-resource-policy` setzen und nach Deployment erneut prüfen."
                        }
                    },
                    {
                        "type": "context",
                        "elements": [
                            {
                                "type": "mrkdwn",
                                "text": "Verantwortlich: Website-Betrieb/Datenschutz · Zielzeit: quartalsweise · https://saferpage.de/befunde/selfservice.nuernberger.de"
                            }
                        ]
                    }
                ]
            },
            "teams_payload": {
                "type": "message",
                "summary": "[NIEDRIG] selfservice.nuernberger.de: Cross-Origin-Resource-Policy fehlt",
                "attachments": [
                    {
                        "contentType": "application/vnd.microsoft.card.adaptive",
                        "content": {
                            "type": "AdaptiveCard",
                            "version": "1.4",
                            "body": [
                                {
                                    "type": "TextBlock",
                                    "weight": "Bolder",
                                    "text": "Cross-Origin-Resource-Policy fehlt"
                                },
                                {
                                    "type": "TextBlock",
                                    "wrap": true,
                                    "text": "Header `cross-origin-resource-policy` setzen und nach Deployment erneut prüfen."
                                },
                                {
                                    "type": "FactSet",
                                    "facts": [
                                        {
                                            "title": "Domain",
                                            "value": "selfservice.nuernberger.de"
                                        },
                                        {
                                            "title": "Verantwortlich",
                                            "value": "Website-Betrieb/Datenschutz"
                                        },
                                        {
                                            "title": "Zielzeit",
                                            "value": "quartalsweise"
                                        }
                                    ]
                                }
                            ]
                        }
                    }
                ]
            },
            "jira_payload": {
                "fields": {
                    "summary": "[selfservice.nuernberger.de] Cross-Origin-Resource-Policy fehlt",
                    "description": "Header `cross-origin-resource-policy` setzen und nach Deployment erneut prüfen.\n\nNachweis: https://saferpage.de/befunde/selfservice.nuernberger.de\nHintergrundseite: https://saferpage.de/guides/security-header-setzen\nRe-Scan: https://saferpage.de/scanbetrieb/selfservice.nuernberger.de",
                    "labels": [
                        "saferpage",
                        "privacyops",
                        "remediation",
                        "niedrig"
                    ],
                    "priority": {
                        "name": "Low"
                    }
                }
            }
        },
        {
            "id": "sp-fix-6055c23924dbf46ffaa31957",
            "ticket_id": "remediation_large_html_response",
            "channel": "jira_webhook",
            "priority": "niedrig",
            "severity": "info",
            "owner": "Website-Betrieb/Datenschutz",
            "sla": "quartalsweise",
            "summary": "[selfservice.nuernberger.de] HTML-Antwort ist groß",
            "description": "HTML reduzieren, kritische Inhalte priorisieren und unnötige Inline-Daten vermeiden.",
            "idempotency_key": "sp-fix-6055c23924dbf46ffaa31957",
            "headers": {
                "X-SaferPage-Event": "operator.remediation.ticket_ready",
                "X-SaferPage-Schema": "operator-remediation-ticket-delivery.v1",
                "X-SaferPage-Idempotency-Key": "sp-fix-6055c23924dbf46ffaa31957",
                "X-SaferPage-Body-SHA256": "eab0383c8352fa1f093d111b9434269f6ecf25b9fe582710c4f82ae592c1de9b",
                "X-SaferPage-Signature": "sha256=<HMAC ueber canonical_webhook_body>"
            },
            "webhook_payload": {
                "event": "operator.remediation.ticket_ready",
                "domain": "selfservice.nuernberger.de",
                "scan_id": "06875d5d-62d4-44c3-a7a9-fc663d5c918e",
                "ticket_id": "remediation_large_html_response",
                "priority": "niedrig",
                "severity": "info",
                "owner": "Website-Betrieb/Datenschutz",
                "sla": "quartalsweise",
                "title": "HTML-Antwort ist groß",
                "evidence": "",
                "action": "HTML reduzieren, kritische Inhalte priorisieren und unnötige Inline-Daten vermeiden.",
                "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."
                ],
                "links": {
                    "guide": "https://saferpage.de/guides/performance-und-mobile-usability-verbessern",
                    "evidence": "https://saferpage.de/befunde/selfservice.nuernberger.de",
                    "rescan": "https://saferpage.de/scanbetrieb/selfservice.nuernberger.de",
                    "report": "https://saferpage.de/selfservice.nuernberger.de",
                    "fix_guides": "https://saferpage.de/fix-guides/selfservice.nuernberger.de"
                }
            },
            "canonical_webhook_body": "{\"event\":\"operator.remediation.ticket_ready\",\"domain\":\"selfservice.nuernberger.de\",\"scan_id\":\"06875d5d-62d4-44c3-a7a9-fc663d5c918e\",\"ticket_id\":\"remediation_large_html_response\",\"priority\":\"niedrig\",\"severity\":\"info\",\"owner\":\"Website-Betrieb/Datenschutz\",\"sla\":\"quartalsweise\",\"title\":\"HTML-Antwort ist groß\",\"evidence\":\"\",\"action\":\"HTML reduzieren, kritische Inhalte priorisieren und unnötige Inline-Daten vermeiden.\",\"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.\"],\"links\":{\"guide\":\"https://saferpage.de/guides/performance-und-mobile-usability-verbessern\",\"evidence\":\"https://saferpage.de/befunde/selfservice.nuernberger.de\",\"rescan\":\"https://saferpage.de/scanbetrieb/selfservice.nuernberger.de\",\"report\":\"https://saferpage.de/selfservice.nuernberger.de\",\"fix_guides\":\"https://saferpage.de/fix-guides/selfservice.nuernberger.de\"}}",
            "canonical_body_sha256": "eab0383c8352fa1f093d111b9434269f6ecf25b9fe582710c4f82ae592c1de9b",
            "slack_payload": {
                "text": "[NIEDRIG] selfservice.nuernberger.de: HTML-Antwort ist groß",
                "blocks": [
                    {
                        "type": "section",
                        "text": {
                            "type": "mrkdwn",
                            "text": "*HTML-Antwort ist groß*\nHTML reduzieren, kritische Inhalte priorisieren und unnötige Inline-Daten vermeiden."
                        }
                    },
                    {
                        "type": "context",
                        "elements": [
                            {
                                "type": "mrkdwn",
                                "text": "Verantwortlich: Website-Betrieb/Datenschutz · Zielzeit: quartalsweise · https://saferpage.de/befunde/selfservice.nuernberger.de"
                            }
                        ]
                    }
                ]
            },
            "teams_payload": {
                "type": "message",
                "summary": "[NIEDRIG] selfservice.nuernberger.de: HTML-Antwort ist groß",
                "attachments": [
                    {
                        "contentType": "application/vnd.microsoft.card.adaptive",
                        "content": {
                            "type": "AdaptiveCard",
                            "version": "1.4",
                            "body": [
                                {
                                    "type": "TextBlock",
                                    "weight": "Bolder",
                                    "text": "HTML-Antwort ist groß"
                                },
                                {
                                    "type": "TextBlock",
                                    "wrap": true,
                                    "text": "HTML reduzieren, kritische Inhalte priorisieren und unnötige Inline-Daten vermeiden."
                                },
                                {
                                    "type": "FactSet",
                                    "facts": [
                                        {
                                            "title": "Domain",
                                            "value": "selfservice.nuernberger.de"
                                        },
                                        {
                                            "title": "Verantwortlich",
                                            "value": "Website-Betrieb/Datenschutz"
                                        },
                                        {
                                            "title": "Zielzeit",
                                            "value": "quartalsweise"
                                        }
                                    ]
                                }
                            ]
                        }
                    }
                ]
            },
            "jira_payload": {
                "fields": {
                    "summary": "[selfservice.nuernberger.de] HTML-Antwort ist groß",
                    "description": "HTML reduzieren, kritische Inhalte priorisieren und unnötige Inline-Daten vermeiden.\n\nNachweis: https://saferpage.de/befunde/selfservice.nuernberger.de\nHintergrundseite: https://saferpage.de/guides/performance-und-mobile-usability-verbessern\nRe-Scan: https://saferpage.de/scanbetrieb/selfservice.nuernberger.de",
                    "labels": [
                        "saferpage",
                        "privacyops",
                        "remediation",
                        "niedrig"
                    ],
                    "priority": {
                        "name": "Low"
                    }
                }
            }
        },
        {
            "id": "sp-fix-e0f1c6f9a73b2aa357601515",
            "ticket_id": "remediation_compression_missing",
            "channel": "jira_webhook",
            "priority": "niedrig",
            "severity": "info",
            "owner": "Website-Betrieb/Datenschutz",
            "sla": "quartalsweise",
            "summary": "[selfservice.nuernberger.de] Komprimierung nicht erkannt",
            "description": "Brotli oder gzip für HTML/CSS/JS aktivieren.",
            "idempotency_key": "sp-fix-e0f1c6f9a73b2aa357601515",
            "headers": {
                "X-SaferPage-Event": "operator.remediation.ticket_ready",
                "X-SaferPage-Schema": "operator-remediation-ticket-delivery.v1",
                "X-SaferPage-Idempotency-Key": "sp-fix-e0f1c6f9a73b2aa357601515",
                "X-SaferPage-Body-SHA256": "8d2d2b76a177245f6fe9b8338a2add38fd2c28af4d17946e37aa356c15884ba8",
                "X-SaferPage-Signature": "sha256=<HMAC ueber canonical_webhook_body>"
            },
            "webhook_payload": {
                "event": "operator.remediation.ticket_ready",
                "domain": "selfservice.nuernberger.de",
                "scan_id": "06875d5d-62d4-44c3-a7a9-fc663d5c918e",
                "ticket_id": "remediation_compression_missing",
                "priority": "niedrig",
                "severity": "info",
                "owner": "Website-Betrieb/Datenschutz",
                "sla": "quartalsweise",
                "title": "Komprimierung nicht erkannt",
                "evidence": "",
                "action": "Brotli oder gzip für HTML/CSS/JS aktivieren.",
                "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."
                ],
                "links": {
                    "guide": "https://saferpage.de/guides/performance-und-mobile-usability-verbessern",
                    "evidence": "https://saferpage.de/befunde/selfservice.nuernberger.de",
                    "rescan": "https://saferpage.de/scanbetrieb/selfservice.nuernberger.de",
                    "report": "https://saferpage.de/selfservice.nuernberger.de",
                    "fix_guides": "https://saferpage.de/fix-guides/selfservice.nuernberger.de"
                }
            },
            "canonical_webhook_body": "{\"event\":\"operator.remediation.ticket_ready\",\"domain\":\"selfservice.nuernberger.de\",\"scan_id\":\"06875d5d-62d4-44c3-a7a9-fc663d5c918e\",\"ticket_id\":\"remediation_compression_missing\",\"priority\":\"niedrig\",\"severity\":\"info\",\"owner\":\"Website-Betrieb/Datenschutz\",\"sla\":\"quartalsweise\",\"title\":\"Komprimierung nicht erkannt\",\"evidence\":\"\",\"action\":\"Brotli oder gzip für HTML/CSS/JS aktivieren.\",\"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.\"],\"links\":{\"guide\":\"https://saferpage.de/guides/performance-und-mobile-usability-verbessern\",\"evidence\":\"https://saferpage.de/befunde/selfservice.nuernberger.de\",\"rescan\":\"https://saferpage.de/scanbetrieb/selfservice.nuernberger.de\",\"report\":\"https://saferpage.de/selfservice.nuernberger.de\",\"fix_guides\":\"https://saferpage.de/fix-guides/selfservice.nuernberger.de\"}}",
            "canonical_body_sha256": "8d2d2b76a177245f6fe9b8338a2add38fd2c28af4d17946e37aa356c15884ba8",
            "slack_payload": {
                "text": "[NIEDRIG] selfservice.nuernberger.de: Komprimierung nicht erkannt",
                "blocks": [
                    {
                        "type": "section",
                        "text": {
                            "type": "mrkdwn",
                            "text": "*Komprimierung nicht erkannt*\nBrotli oder gzip für HTML/CSS/JS aktivieren."
                        }
                    },
                    {
                        "type": "context",
                        "elements": [
                            {
                                "type": "mrkdwn",
                                "text": "Verantwortlich: Website-Betrieb/Datenschutz · Zielzeit: quartalsweise · https://saferpage.de/befunde/selfservice.nuernberger.de"
                            }
                        ]
                    }
                ]
            },
            "teams_payload": {
                "type": "message",
                "summary": "[NIEDRIG] selfservice.nuernberger.de: Komprimierung nicht erkannt",
                "attachments": [
                    {
                        "contentType": "application/vnd.microsoft.card.adaptive",
                        "content": {
                            "type": "AdaptiveCard",
                            "version": "1.4",
                            "body": [
                                {
                                    "type": "TextBlock",
                                    "weight": "Bolder",
                                    "text": "Komprimierung nicht erkannt"
                                },
                                {
                                    "type": "TextBlock",
                                    "wrap": true,
                                    "text": "Brotli oder gzip für HTML/CSS/JS aktivieren."
                                },
                                {
                                    "type": "FactSet",
                                    "facts": [
                                        {
                                            "title": "Domain",
                                            "value": "selfservice.nuernberger.de"
                                        },
                                        {
                                            "title": "Verantwortlich",
                                            "value": "Website-Betrieb/Datenschutz"
                                        },
                                        {
                                            "title": "Zielzeit",
                                            "value": "quartalsweise"
                                        }
                                    ]
                                }
                            ]
                        }
                    }
                ]
            },
            "jira_payload": {
                "fields": {
                    "summary": "[selfservice.nuernberger.de] Komprimierung nicht erkannt",
                    "description": "Brotli oder gzip für HTML/CSS/JS aktivieren.\n\nNachweis: https://saferpage.de/befunde/selfservice.nuernberger.de\nHintergrundseite: https://saferpage.de/guides/performance-und-mobile-usability-verbessern\nRe-Scan: https://saferpage.de/scanbetrieb/selfservice.nuernberger.de",
                    "labels": [
                        "saferpage",
                        "privacyops",
                        "remediation",
                        "niedrig"
                    ],
                    "priority": {
                        "name": "Low"
                    }
                }
            }
        },
        {
            "id": "sp-fix-561620a2a8d1ebd920e5d27a",
            "ticket_id": "remediation_missing_permissions_policy",
            "channel": "jira_webhook",
            "priority": "niedrig",
            "severity": "info",
            "owner": "Website-Betrieb/Datenschutz",
            "sla": "quartalsweise",
            "summary": "[selfservice.nuernberger.de] Permissions-Policy fehlt",
            "description": "Header `permissions-policy` setzen und nach Deployment erneut prüfen.",
            "idempotency_key": "sp-fix-561620a2a8d1ebd920e5d27a",
            "headers": {
                "X-SaferPage-Event": "operator.remediation.ticket_ready",
                "X-SaferPage-Schema": "operator-remediation-ticket-delivery.v1",
                "X-SaferPage-Idempotency-Key": "sp-fix-561620a2a8d1ebd920e5d27a",
                "X-SaferPage-Body-SHA256": "5b80233a17241210a90618781c11211a242c07d19663296fc37526fb767857f4",
                "X-SaferPage-Signature": "sha256=<HMAC ueber canonical_webhook_body>"
            },
            "webhook_payload": {
                "event": "operator.remediation.ticket_ready",
                "domain": "selfservice.nuernberger.de",
                "scan_id": "06875d5d-62d4-44c3-a7a9-fc663d5c918e",
                "ticket_id": "remediation_missing_permissions_policy",
                "priority": "niedrig",
                "severity": "info",
                "owner": "Website-Betrieb/Datenschutz",
                "sla": "quartalsweise",
                "title": "Permissions-Policy fehlt",
                "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."
                ],
                "links": {
                    "guide": "https://saferpage.de/guides/security-header-setzen",
                    "evidence": "https://saferpage.de/befunde/selfservice.nuernberger.de",
                    "rescan": "https://saferpage.de/scanbetrieb/selfservice.nuernberger.de",
                    "report": "https://saferpage.de/selfservice.nuernberger.de",
                    "fix_guides": "https://saferpage.de/fix-guides/selfservice.nuernberger.de"
                }
            },
            "canonical_webhook_body": "{\"event\":\"operator.remediation.ticket_ready\",\"domain\":\"selfservice.nuernberger.de\",\"scan_id\":\"06875d5d-62d4-44c3-a7a9-fc663d5c918e\",\"ticket_id\":\"remediation_missing_permissions_policy\",\"priority\":\"niedrig\",\"severity\":\"info\",\"owner\":\"Website-Betrieb/Datenschutz\",\"sla\":\"quartalsweise\",\"title\":\"Permissions-Policy fehlt\",\"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.\"],\"links\":{\"guide\":\"https://saferpage.de/guides/security-header-setzen\",\"evidence\":\"https://saferpage.de/befunde/selfservice.nuernberger.de\",\"rescan\":\"https://saferpage.de/scanbetrieb/selfservice.nuernberger.de\",\"report\":\"https://saferpage.de/selfservice.nuernberger.de\",\"fix_guides\":\"https://saferpage.de/fix-guides/selfservice.nuernberger.de\"}}",
            "canonical_body_sha256": "5b80233a17241210a90618781c11211a242c07d19663296fc37526fb767857f4",
            "slack_payload": {
                "text": "[NIEDRIG] selfservice.nuernberger.de: Permissions-Policy fehlt",
                "blocks": [
                    {
                        "type": "section",
                        "text": {
                            "type": "mrkdwn",
                            "text": "*Permissions-Policy fehlt*\nHeader `permissions-policy` setzen und nach Deployment erneut prüfen."
                        }
                    },
                    {
                        "type": "context",
                        "elements": [
                            {
                                "type": "mrkdwn",
                                "text": "Verantwortlich: Website-Betrieb/Datenschutz · Zielzeit: quartalsweise · https://saferpage.de/befunde/selfservice.nuernberger.de"
                            }
                        ]
                    }
                ]
            },
            "teams_payload": {
                "type": "message",
                "summary": "[NIEDRIG] selfservice.nuernberger.de: Permissions-Policy fehlt",
                "attachments": [
                    {
                        "contentType": "application/vnd.microsoft.card.adaptive",
                        "content": {
                            "type": "AdaptiveCard",
                            "version": "1.4",
                            "body": [
                                {
                                    "type": "TextBlock",
                                    "weight": "Bolder",
                                    "text": "Permissions-Policy fehlt"
                                },
                                {
                                    "type": "TextBlock",
                                    "wrap": true,
                                    "text": "Header `permissions-policy` setzen und nach Deployment erneut prüfen."
                                },
                                {
                                    "type": "FactSet",
                                    "facts": [
                                        {
                                            "title": "Domain",
                                            "value": "selfservice.nuernberger.de"
                                        },
                                        {
                                            "title": "Verantwortlich",
                                            "value": "Website-Betrieb/Datenschutz"
                                        },
                                        {
                                            "title": "Zielzeit",
                                            "value": "quartalsweise"
                                        }
                                    ]
                                }
                            ]
                        }
                    }
                ]
            },
            "jira_payload": {
                "fields": {
                    "summary": "[selfservice.nuernberger.de] Permissions-Policy fehlt",
                    "description": "Header `permissions-policy` setzen und nach Deployment erneut prüfen.\n\nNachweis: https://saferpage.de/befunde/selfservice.nuernberger.de\nHintergrundseite: https://saferpage.de/guides/security-header-setzen\nRe-Scan: https://saferpage.de/scanbetrieb/selfservice.nuernberger.de",
                    "labels": [
                        "saferpage",
                        "privacyops",
                        "remediation",
                        "niedrig"
                    ],
                    "priority": {
                        "name": "Low"
                    }
                }
            }
        },
        {
            "id": "sp-fix-aa02d4c17db98e73b9ac53a2",
            "ticket_id": "remediation_missing_referrer_policy",
            "channel": "jira_webhook",
            "priority": "niedrig",
            "severity": "info",
            "owner": "Website-Betrieb/Datenschutz",
            "sla": "quartalsweise",
            "summary": "[selfservice.nuernberger.de] Referrer-Policy fehlt",
            "description": "Header `referrer-policy` setzen und nach Deployment erneut prüfen.",
            "idempotency_key": "sp-fix-aa02d4c17db98e73b9ac53a2",
            "headers": {
                "X-SaferPage-Event": "operator.remediation.ticket_ready",
                "X-SaferPage-Schema": "operator-remediation-ticket-delivery.v1",
                "X-SaferPage-Idempotency-Key": "sp-fix-aa02d4c17db98e73b9ac53a2",
                "X-SaferPage-Body-SHA256": "9c2e4829c30c3ad4246bb80bac9afc9c62af97e0bac084da2bc8edc67feea767",
                "X-SaferPage-Signature": "sha256=<HMAC ueber canonical_webhook_body>"
            },
            "webhook_payload": {
                "event": "operator.remediation.ticket_ready",
                "domain": "selfservice.nuernberger.de",
                "scan_id": "06875d5d-62d4-44c3-a7a9-fc663d5c918e",
                "ticket_id": "remediation_missing_referrer_policy",
                "priority": "niedrig",
                "severity": "info",
                "owner": "Website-Betrieb/Datenschutz",
                "sla": "quartalsweise",
                "title": "Referrer-Policy fehlt",
                "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."
                ],
                "links": {
                    "guide": "https://saferpage.de/guides/security-header-setzen",
                    "evidence": "https://saferpage.de/befunde/selfservice.nuernberger.de",
                    "rescan": "https://saferpage.de/scanbetrieb/selfservice.nuernberger.de",
                    "report": "https://saferpage.de/selfservice.nuernberger.de",
                    "fix_guides": "https://saferpage.de/fix-guides/selfservice.nuernberger.de"
                }
            },
            "canonical_webhook_body": "{\"event\":\"operator.remediation.ticket_ready\",\"domain\":\"selfservice.nuernberger.de\",\"scan_id\":\"06875d5d-62d4-44c3-a7a9-fc663d5c918e\",\"ticket_id\":\"remediation_missing_referrer_policy\",\"priority\":\"niedrig\",\"severity\":\"info\",\"owner\":\"Website-Betrieb/Datenschutz\",\"sla\":\"quartalsweise\",\"title\":\"Referrer-Policy fehlt\",\"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.\"],\"links\":{\"guide\":\"https://saferpage.de/guides/security-header-setzen\",\"evidence\":\"https://saferpage.de/befunde/selfservice.nuernberger.de\",\"rescan\":\"https://saferpage.de/scanbetrieb/selfservice.nuernberger.de\",\"report\":\"https://saferpage.de/selfservice.nuernberger.de\",\"fix_guides\":\"https://saferpage.de/fix-guides/selfservice.nuernberger.de\"}}",
            "canonical_body_sha256": "9c2e4829c30c3ad4246bb80bac9afc9c62af97e0bac084da2bc8edc67feea767",
            "slack_payload": {
                "text": "[NIEDRIG] selfservice.nuernberger.de: Referrer-Policy fehlt",
                "blocks": [
                    {
                        "type": "section",
                        "text": {
                            "type": "mrkdwn",
                            "text": "*Referrer-Policy fehlt*\nHeader `referrer-policy` setzen und nach Deployment erneut prüfen."
                        }
                    },
                    {
                        "type": "context",
                        "elements": [
                            {
                                "type": "mrkdwn",
                                "text": "Verantwortlich: Website-Betrieb/Datenschutz · Zielzeit: quartalsweise · https://saferpage.de/befunde/selfservice.nuernberger.de"
                            }
                        ]
                    }
                ]
            },
            "teams_payload": {
                "type": "message",
                "summary": "[NIEDRIG] selfservice.nuernberger.de: Referrer-Policy fehlt",
                "attachments": [
                    {
                        "contentType": "application/vnd.microsoft.card.adaptive",
                        "content": {
                            "type": "AdaptiveCard",
                            "version": "1.4",
                            "body": [
                                {
                                    "type": "TextBlock",
                                    "weight": "Bolder",
                                    "text": "Referrer-Policy fehlt"
                                },
                                {
                                    "type": "TextBlock",
                                    "wrap": true,
                                    "text": "Header `referrer-policy` setzen und nach Deployment erneut prüfen."
                                },
                                {
                                    "type": "FactSet",
                                    "facts": [
                                        {
                                            "title": "Domain",
                                            "value": "selfservice.nuernberger.de"
                                        },
                                        {
                                            "title": "Verantwortlich",
                                            "value": "Website-Betrieb/Datenschutz"
                                        },
                                        {
                                            "title": "Zielzeit",
                                            "value": "quartalsweise"
                                        }
                                    ]
                                }
                            ]
                        }
                    }
                ]
            },
            "jira_payload": {
                "fields": {
                    "summary": "[selfservice.nuernberger.de] Referrer-Policy fehlt",
                    "description": "Header `referrer-policy` setzen und nach Deployment erneut prüfen.\n\nNachweis: https://saferpage.de/befunde/selfservice.nuernberger.de\nHintergrundseite: https://saferpage.de/guides/security-header-setzen\nRe-Scan: https://saferpage.de/scanbetrieb/selfservice.nuernberger.de",
                    "labels": [
                        "saferpage",
                        "privacyops",
                        "remediation",
                        "niedrig"
                    ],
                    "priority": {
                        "name": "Low"
                    }
                }
            }
        },
        {
            "id": "sp-fix-5dff7ff1452080953b4856ed",
            "ticket_id": "remediation_tracking_pixel_detected",
            "channel": "jira_webhook",
            "priority": "niedrig",
            "severity": "info",
            "owner": "Website-Betrieb/Datenschutz",
            "sla": "quartalsweise",
            "summary": "[selfservice.nuernberger.de] Tracking-Pixel oder pixelnahe Requests erkannt",
            "description": "Pixel von selfservice.nuernberger.de erst nach Einwilligung laden, Zweck erklären und unnötige Bild-Tracker entfernen.",
            "idempotency_key": "sp-fix-5dff7ff1452080953b4856ed",
            "headers": {
                "X-SaferPage-Event": "operator.remediation.ticket_ready",
                "X-SaferPage-Schema": "operator-remediation-ticket-delivery.v1",
                "X-SaferPage-Idempotency-Key": "sp-fix-5dff7ff1452080953b4856ed",
                "X-SaferPage-Body-SHA256": "b1b565bc179a18a2555f8fbce8e38c5944cbdb5f2ec8b52dc39ce0731806b0a1",
                "X-SaferPage-Signature": "sha256=<HMAC ueber canonical_webhook_body>"
            },
            "webhook_payload": {
                "event": "operator.remediation.ticket_ready",
                "domain": "selfservice.nuernberger.de",
                "scan_id": "06875d5d-62d4-44c3-a7a9-fc663d5c918e",
                "ticket_id": "remediation_tracking_pixel_detected",
                "priority": "niedrig",
                "severity": "info",
                "owner": "Website-Betrieb/Datenschutz",
                "sla": "quartalsweise",
                "title": "Tracking-Pixel oder pixelnahe Requests erkannt",
                "evidence": "",
                "action": "Pixel von selfservice.nuernberger.de erst nach Einwilligung laden, Zweck erklären und unnötige Bild-Tracker entfernen.",
                "acceptance_criteria": [
                    "Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.",
                    "Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.",
                    "Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe."
                ],
                "links": {
                    "guide": "https://saferpage.de/guides/tracking-pixel-und-beacons-begrenzen",
                    "evidence": "https://saferpage.de/befunde/selfservice.nuernberger.de",
                    "rescan": "https://saferpage.de/scanbetrieb/selfservice.nuernberger.de",
                    "report": "https://saferpage.de/selfservice.nuernberger.de",
                    "fix_guides": "https://saferpage.de/fix-guides/selfservice.nuernberger.de"
                }
            },
            "canonical_webhook_body": "{\"event\":\"operator.remediation.ticket_ready\",\"domain\":\"selfservice.nuernberger.de\",\"scan_id\":\"06875d5d-62d4-44c3-a7a9-fc663d5c918e\",\"ticket_id\":\"remediation_tracking_pixel_detected\",\"priority\":\"niedrig\",\"severity\":\"info\",\"owner\":\"Website-Betrieb/Datenschutz\",\"sla\":\"quartalsweise\",\"title\":\"Tracking-Pixel oder pixelnahe Requests erkannt\",\"evidence\":\"\",\"action\":\"Pixel von selfservice.nuernberger.de erst nach Einwilligung laden, Zweck erklären und unnötige Bild-Tracker entfernen.\",\"acceptance_criteria\":[\"Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.\",\"Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.\",\"Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe.\"],\"links\":{\"guide\":\"https://saferpage.de/guides/tracking-pixel-und-beacons-begrenzen\",\"evidence\":\"https://saferpage.de/befunde/selfservice.nuernberger.de\",\"rescan\":\"https://saferpage.de/scanbetrieb/selfservice.nuernberger.de\",\"report\":\"https://saferpage.de/selfservice.nuernberger.de\",\"fix_guides\":\"https://saferpage.de/fix-guides/selfservice.nuernberger.de\"}}",
            "canonical_body_sha256": "b1b565bc179a18a2555f8fbce8e38c5944cbdb5f2ec8b52dc39ce0731806b0a1",
            "slack_payload": {
                "text": "[NIEDRIG] selfservice.nuernberger.de: Tracking-Pixel oder pixelnahe Requests erkannt",
                "blocks": [
                    {
                        "type": "section",
                        "text": {
                            "type": "mrkdwn",
                            "text": "*Tracking-Pixel oder pixelnahe Requests erkannt*\nPixel von selfservice.nuernberger.de erst nach Einwilligung laden, Zweck erklären und unnötige Bild-Tracker entfernen."
                        }
                    },
                    {
                        "type": "context",
                        "elements": [
                            {
                                "type": "mrkdwn",
                                "text": "Verantwortlich: Website-Betrieb/Datenschutz · Zielzeit: quartalsweise · https://saferpage.de/befunde/selfservice.nuernberger.de"
                            }
                        ]
                    }
                ]
            },
            "teams_payload": {
                "type": "message",
                "summary": "[NIEDRIG] selfservice.nuernberger.de: Tracking-Pixel oder pixelnahe Requests erkannt",
                "attachments": [
                    {
                        "contentType": "application/vnd.microsoft.card.adaptive",
                        "content": {
                            "type": "AdaptiveCard",
                            "version": "1.4",
                            "body": [
                                {
                                    "type": "TextBlock",
                                    "weight": "Bolder",
                                    "text": "Tracking-Pixel oder pixelnahe Requests erkannt"
                                },
                                {
                                    "type": "TextBlock",
                                    "wrap": true,
                                    "text": "Pixel von selfservice.nuernberger.de erst nach Einwilligung laden, Zweck erklären und unnötige Bild-Tracker entfernen."
                                },
                                {
                                    "type": "FactSet",
                                    "facts": [
                                        {
                                            "title": "Domain",
                                            "value": "selfservice.nuernberger.de"
                                        },
                                        {
                                            "title": "Verantwortlich",
                                            "value": "Website-Betrieb/Datenschutz"
                                        },
                                        {
                                            "title": "Zielzeit",
                                            "value": "quartalsweise"
                                        }
                                    ]
                                }
                            ]
                        }
                    }
                ]
            },
            "jira_payload": {
                "fields": {
                    "summary": "[selfservice.nuernberger.de] Tracking-Pixel oder pixelnahe Requests erkannt",
                    "description": "Pixel von selfservice.nuernberger.de erst nach Einwilligung laden, Zweck erklären und unnötige Bild-Tracker entfernen.\n\nNachweis: https://saferpage.de/befunde/selfservice.nuernberger.de\nHintergrundseite: https://saferpage.de/guides/tracking-pixel-und-beacons-begrenzen\nRe-Scan: https://saferpage.de/scanbetrieb/selfservice.nuernberger.de",
                    "labels": [
                        "saferpage",
                        "privacyops",
                        "remediation",
                        "niedrig"
                    ],
                    "priority": {
                        "name": "Low"
                    }
                }
            }
        },
        {
            "id": "sp-fix-83d4f18fb597c2f1565236a1",
            "ticket_id": "remediation_browser_keystroke_listener_signals",
            "channel": "jira_webhook",
            "priority": "niedrig",
            "severity": "info",
            "owner": "Website-Betrieb/Datenschutz",
            "sla": "quartalsweise",
            "summary": "[selfservice.nuernberger.de] Viele Tastatur-/Eingabe-Listener im Browser erkannt",
            "description": "Prüfen, ob Eingaben für Analytics, Session-Replay oder Debugging erfasst werden; sensible Felder konsequent ausschließen.",
            "idempotency_key": "sp-fix-83d4f18fb597c2f1565236a1",
            "headers": {
                "X-SaferPage-Event": "operator.remediation.ticket_ready",
                "X-SaferPage-Schema": "operator-remediation-ticket-delivery.v1",
                "X-SaferPage-Idempotency-Key": "sp-fix-83d4f18fb597c2f1565236a1",
                "X-SaferPage-Body-SHA256": "2955f32be23bc1ea9341b27668e539719a4bd3eef6ffccbc5fa0c972833f8754",
                "X-SaferPage-Signature": "sha256=<HMAC ueber canonical_webhook_body>"
            },
            "webhook_payload": {
                "event": "operator.remediation.ticket_ready",
                "domain": "selfservice.nuernberger.de",
                "scan_id": "06875d5d-62d4-44c3-a7a9-fc663d5c918e",
                "ticket_id": "remediation_browser_keystroke_listener_signals",
                "priority": "niedrig",
                "severity": "info",
                "owner": "Website-Betrieb/Datenschutz",
                "sla": "quartalsweise",
                "title": "Viele Tastatur-/Eingabe-Listener im Browser erkannt",
                "evidence": "",
                "action": "Prüfen, ob Eingaben für Analytics, Session-Replay oder Debugging erfasst werden; sensible Felder konsequent ausschließen.",
                "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."
                ],
                "links": {
                    "guide": "https://saferpage.de/guides/session-replay-und-fingerprinting-pruefen",
                    "evidence": "https://saferpage.de/befunde/selfservice.nuernberger.de",
                    "rescan": "https://saferpage.de/scanbetrieb/selfservice.nuernberger.de",
                    "report": "https://saferpage.de/selfservice.nuernberger.de",
                    "fix_guides": "https://saferpage.de/fix-guides/selfservice.nuernberger.de"
                }
            },
            "canonical_webhook_body": "{\"event\":\"operator.remediation.ticket_ready\",\"domain\":\"selfservice.nuernberger.de\",\"scan_id\":\"06875d5d-62d4-44c3-a7a9-fc663d5c918e\",\"ticket_id\":\"remediation_browser_keystroke_listener_signals\",\"priority\":\"niedrig\",\"severity\":\"info\",\"owner\":\"Website-Betrieb/Datenschutz\",\"sla\":\"quartalsweise\",\"title\":\"Viele Tastatur-/Eingabe-Listener im Browser erkannt\",\"evidence\":\"\",\"action\":\"Prüfen, ob Eingaben für Analytics, Session-Replay oder Debugging erfasst werden; sensible Felder konsequent ausschließen.\",\"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.\"],\"links\":{\"guide\":\"https://saferpage.de/guides/session-replay-und-fingerprinting-pruefen\",\"evidence\":\"https://saferpage.de/befunde/selfservice.nuernberger.de\",\"rescan\":\"https://saferpage.de/scanbetrieb/selfservice.nuernberger.de\",\"report\":\"https://saferpage.de/selfservice.nuernberger.de\",\"fix_guides\":\"https://saferpage.de/fix-guides/selfservice.nuernberger.de\"}}",
            "canonical_body_sha256": "2955f32be23bc1ea9341b27668e539719a4bd3eef6ffccbc5fa0c972833f8754",
            "slack_payload": {
                "text": "[NIEDRIG] selfservice.nuernberger.de: Viele Tastatur-/Eingabe-Listener im Browser erkannt",
                "blocks": [
                    {
                        "type": "section",
                        "text": {
                            "type": "mrkdwn",
                            "text": "*Viele Tastatur-/Eingabe-Listener im Browser erkannt*\nPrüfen, ob Eingaben für Analytics, Session-Replay oder Debugging erfasst werden; sensible Felder konsequent ausschließen."
                        }
                    },
                    {
                        "type": "context",
                        "elements": [
                            {
                                "type": "mrkdwn",
                                "text": "Verantwortlich: Website-Betrieb/Datenschutz · Zielzeit: quartalsweise · https://saferpage.de/befunde/selfservice.nuernberger.de"
                            }
                        ]
                    }
                ]
            },
            "teams_payload": {
                "type": "message",
                "summary": "[NIEDRIG] selfservice.nuernberger.de: Viele Tastatur-/Eingabe-Listener im Browser erkannt",
                "attachments": [
                    {
                        "contentType": "application/vnd.microsoft.card.adaptive",
                        "content": {
                            "type": "AdaptiveCard",
                            "version": "1.4",
                            "body": [
                                {
                                    "type": "TextBlock",
                                    "weight": "Bolder",
                                    "text": "Viele Tastatur-/Eingabe-Listener im Browser erkannt"
                                },
                                {
                                    "type": "TextBlock",
                                    "wrap": true,
                                    "text": "Prüfen, ob Eingaben für Analytics, Session-Replay oder Debugging erfasst werden; sensible Felder konsequent ausschließen."
                                },
                                {
                                    "type": "FactSet",
                                    "facts": [
                                        {
                                            "title": "Domain",
                                            "value": "selfservice.nuernberger.de"
                                        },
                                        {
                                            "title": "Verantwortlich",
                                            "value": "Website-Betrieb/Datenschutz"
                                        },
                                        {
                                            "title": "Zielzeit",
                                            "value": "quartalsweise"
                                        }
                                    ]
                                }
                            ]
                        }
                    }
                ]
            },
            "jira_payload": {
                "fields": {
                    "summary": "[selfservice.nuernberger.de] Viele Tastatur-/Eingabe-Listener im Browser erkannt",
                    "description": "Prüfen, ob Eingaben für Analytics, Session-Replay oder Debugging erfasst werden; sensible Felder konsequent ausschließen.\n\nNachweis: https://saferpage.de/befunde/selfservice.nuernberger.de\nHintergrundseite: https://saferpage.de/guides/session-replay-und-fingerprinting-pruefen\nRe-Scan: https://saferpage.de/scanbetrieb/selfservice.nuernberger.de",
                    "labels": [
                        "saferpage",
                        "privacyops",
                        "remediation",
                        "niedrig"
                    ],
                    "priority": {
                        "name": "Low"
                    }
                }
            }
        },
        {
            "id": "sp-fix-f80faec00b35390eeb55478c",
            "ticket_id": "remediation_too_many_render_blocking_assets",
            "channel": "jira_webhook",
            "priority": "niedrig",
            "severity": "info",
            "owner": "Website-Betrieb/Datenschutz",
            "sla": "quartalsweise",
            "summary": "[selfservice.nuernberger.de] Viele potenziell blockierende Assets",
            "description": "Skripte/CSS bündeln, defer/async nutzen und kritisches CSS priorisieren.",
            "idempotency_key": "sp-fix-f80faec00b35390eeb55478c",
            "headers": {
                "X-SaferPage-Event": "operator.remediation.ticket_ready",
                "X-SaferPage-Schema": "operator-remediation-ticket-delivery.v1",
                "X-SaferPage-Idempotency-Key": "sp-fix-f80faec00b35390eeb55478c",
                "X-SaferPage-Body-SHA256": "7647baeb271cc152bf922ed163c28790ee38e236d15084842c71e72d7b03905a",
                "X-SaferPage-Signature": "sha256=<HMAC ueber canonical_webhook_body>"
            },
            "webhook_payload": {
                "event": "operator.remediation.ticket_ready",
                "domain": "selfservice.nuernberger.de",
                "scan_id": "06875d5d-62d4-44c3-a7a9-fc663d5c918e",
                "ticket_id": "remediation_too_many_render_blocking_assets",
                "priority": "niedrig",
                "severity": "info",
                "owner": "Website-Betrieb/Datenschutz",
                "sla": "quartalsweise",
                "title": "Viele potenziell blockierende Assets",
                "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."
                ],
                "links": {
                    "guide": "https://saferpage.de/guides/performance-und-mobile-usability-verbessern",
                    "evidence": "https://saferpage.de/befunde/selfservice.nuernberger.de",
                    "rescan": "https://saferpage.de/scanbetrieb/selfservice.nuernberger.de",
                    "report": "https://saferpage.de/selfservice.nuernberger.de",
                    "fix_guides": "https://saferpage.de/fix-guides/selfservice.nuernberger.de"
                }
            },
            "canonical_webhook_body": "{\"event\":\"operator.remediation.ticket_ready\",\"domain\":\"selfservice.nuernberger.de\",\"scan_id\":\"06875d5d-62d4-44c3-a7a9-fc663d5c918e\",\"ticket_id\":\"remediation_too_many_render_blocking_assets\",\"priority\":\"niedrig\",\"severity\":\"info\",\"owner\":\"Website-Betrieb/Datenschutz\",\"sla\":\"quartalsweise\",\"title\":\"Viele potenziell blockierende Assets\",\"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.\"],\"links\":{\"guide\":\"https://saferpage.de/guides/performance-und-mobile-usability-verbessern\",\"evidence\":\"https://saferpage.de/befunde/selfservice.nuernberger.de\",\"rescan\":\"https://saferpage.de/scanbetrieb/selfservice.nuernberger.de\",\"report\":\"https://saferpage.de/selfservice.nuernberger.de\",\"fix_guides\":\"https://saferpage.de/fix-guides/selfservice.nuernberger.de\"}}",
            "canonical_body_sha256": "7647baeb271cc152bf922ed163c28790ee38e236d15084842c71e72d7b03905a",
            "slack_payload": {
                "text": "[NIEDRIG] selfservice.nuernberger.de: Viele potenziell blockierende Assets",
                "blocks": [
                    {
                        "type": "section",
                        "text": {
                            "type": "mrkdwn",
                            "text": "*Viele potenziell blockierende Assets*\nSkripte/CSS bündeln, defer/async nutzen und kritisches CSS priorisieren."
                        }
                    },
                    {
                        "type": "context",
                        "elements": [
                            {
                                "type": "mrkdwn",
                                "text": "Verantwortlich: Website-Betrieb/Datenschutz · Zielzeit: quartalsweise · https://saferpage.de/befunde/selfservice.nuernberger.de"
                            }
                        ]
                    }
                ]
            },
            "teams_payload": {
                "type": "message",
                "summary": "[NIEDRIG] selfservice.nuernberger.de: Viele potenziell blockierende Assets",
                "attachments": [
                    {
                        "contentType": "application/vnd.microsoft.card.adaptive",
                        "content": {
                            "type": "AdaptiveCard",
                            "version": "1.4",
                            "body": [
                                {
                                    "type": "TextBlock",
                                    "weight": "Bolder",
                                    "text": "Viele potenziell blockierende Assets"
                                },
                                {
                                    "type": "TextBlock",
                                    "wrap": true,
                                    "text": "Skripte/CSS bündeln, defer/async nutzen und kritisches CSS priorisieren."
                                },
                                {
                                    "type": "FactSet",
                                    "facts": [
                                        {
                                            "title": "Domain",
                                            "value": "selfservice.nuernberger.de"
                                        },
                                        {
                                            "title": "Verantwortlich",
                                            "value": "Website-Betrieb/Datenschutz"
                                        },
                                        {
                                            "title": "Zielzeit",
                                            "value": "quartalsweise"
                                        }
                                    ]
                                }
                            ]
                        }
                    }
                ]
            },
            "jira_payload": {
                "fields": {
                    "summary": "[selfservice.nuernberger.de] Viele potenziell blockierende Assets",
                    "description": "Skripte/CSS bündeln, defer/async nutzen und kritisches CSS priorisieren.\n\nNachweis: https://saferpage.de/befunde/selfservice.nuernberger.de\nHintergrundseite: https://saferpage.de/guides/performance-und-mobile-usability-verbessern\nRe-Scan: https://saferpage.de/scanbetrieb/selfservice.nuernberger.de",
                    "labels": [
                        "saferpage",
                        "privacyops",
                        "remediation",
                        "niedrig"
                    ],
                    "priority": {
                        "name": "Low"
                    }
                }
            }
        }
    ],
    "links": {
        "fix_guides": "https://saferpage.de/fix-guides/selfservice.nuernberger.de",
        "tickets_json": "https://saferpage.de/fix-guides/selfservice.nuernberger.de/tickets-json",
        "json": "https://saferpage.de/fix-guides/selfservice.nuernberger.de/tickets-delivery-json",
        "csv": "https://saferpage.de/fix-guides/selfservice.nuernberger.de/tickets-delivery-csv"
    },
    "disclaimer": "Payload-Vorlagen ohne aktive Zustellung und ohne echte Secrets. Betreiber muessen Zielsysteme, Authentifizierung, HMAC-Secret, Projekte, Empfaenger und Freigaben selbst konfigurieren."
}
