{
    "schema": "https://saferpage.de/schemas/operator-remediation-ticket-delivery.v1",
    "generated_at": "2026-06-23T02:48:17+00:00",
    "domain": "appshop.gira.de",
    "available": true,
    "scan": {
        "id": "1025dbf6-260d-4ec2-a8ed-ebf88afbf2bb",
        "checked_at": "2026-06-20 11:00:16.26413+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": 30,
        "high_priority_count": 18,
        "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-7730399335de229e85fe01c8",
            "ticket_id": "remediation_module_accessibility_usability",
            "channel": "jira_slack_webhook",
            "priority": "hoch",
            "severity": "critical",
            "owner": "Website-Betrieb/Datenschutz",
            "sla": "7 Tage",
            "summary": "[appshop.gira.de] Barrierefreiheit & Usability",
            "description": "Alt-Texte, Formularlabels, Button-Namen, lang-Attribut und Überschriftenstruktur für Nutzer und Screenreader prüfen.",
            "idempotency_key": "sp-fix-7730399335de229e85fe01c8",
            "headers": {
                "X-SaferPage-Event": "operator.remediation.ticket_ready",
                "X-SaferPage-Schema": "operator-remediation-ticket-delivery.v1",
                "X-SaferPage-Idempotency-Key": "sp-fix-7730399335de229e85fe01c8",
                "X-SaferPage-Body-SHA256": "1b08f9861ba2250ae92a5b91cb2753f9be0164f8a7b2e44fbbdcabb0166a1bff",
                "X-SaferPage-Signature": "sha256=<HMAC ueber canonical_webhook_body>"
            },
            "webhook_payload": {
                "event": "operator.remediation.ticket_ready",
                "domain": "appshop.gira.de",
                "scan_id": "1025dbf6-260d-4ec2-a8ed-ebf88afbf2bb",
                "ticket_id": "remediation_module_accessibility_usability",
                "priority": "hoch",
                "severity": "critical",
                "owner": "Website-Betrieb/Datenschutz",
                "sla": "7 Tage",
                "title": "Barrierefreiheit & Usability",
                "evidence": "6 Bild(er) ohne alt, 2 Formularfeld(er) ohne Beschriftung, 2 Button(s) ohne Namen.",
                "action": "Alt-Texte, Formularlabels, Button-Namen, lang-Attribut und Überschriftenstruktur für Nutzer und Screenreader prüfen.",
                "acceptance_criteria": [
                    "Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.",
                    "Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.",
                    "Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe."
                ],
                "links": {
                    "guide": "https://saferpage.de/guides/barrierefreiheit-cookie-banner-formulare",
                    "evidence": "https://saferpage.de/befunde/appshop.gira.de",
                    "rescan": "https://saferpage.de/scanbetrieb/appshop.gira.de",
                    "report": "https://saferpage.de/appshop.gira.de",
                    "fix_guides": "https://saferpage.de/fix-guides/appshop.gira.de"
                }
            },
            "canonical_webhook_body": "{\"event\":\"operator.remediation.ticket_ready\",\"domain\":\"appshop.gira.de\",\"scan_id\":\"1025dbf6-260d-4ec2-a8ed-ebf88afbf2bb\",\"ticket_id\":\"remediation_module_accessibility_usability\",\"priority\":\"hoch\",\"severity\":\"critical\",\"owner\":\"Website-Betrieb/Datenschutz\",\"sla\":\"7 Tage\",\"title\":\"Barrierefreiheit & Usability\",\"evidence\":\"6 Bild(er) ohne alt, 2 Formularfeld(er) ohne Beschriftung, 2 Button(s) ohne Namen.\",\"action\":\"Alt-Texte, Formularlabels, Button-Namen, lang-Attribut und Überschriftenstruktur für Nutzer und Screenreader prüfen.\",\"acceptance_criteria\":[\"Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.\",\"Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.\",\"Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe.\"],\"links\":{\"guide\":\"https://saferpage.de/guides/barrierefreiheit-cookie-banner-formulare\",\"evidence\":\"https://saferpage.de/befunde/appshop.gira.de\",\"rescan\":\"https://saferpage.de/scanbetrieb/appshop.gira.de\",\"report\":\"https://saferpage.de/appshop.gira.de\",\"fix_guides\":\"https://saferpage.de/fix-guides/appshop.gira.de\"}}",
            "canonical_body_sha256": "1b08f9861ba2250ae92a5b91cb2753f9be0164f8a7b2e44fbbdcabb0166a1bff",
            "slack_payload": {
                "text": "[HOCH] appshop.gira.de: Barrierefreiheit & Usability",
                "blocks": [
                    {
                        "type": "section",
                        "text": {
                            "type": "mrkdwn",
                            "text": "*Barrierefreiheit & Usability*\nAlt-Texte, Formularlabels, Button-Namen, lang-Attribut und Überschriftenstruktur für Nutzer und Screenreader prüfen."
                        }
                    },
                    {
                        "type": "context",
                        "elements": [
                            {
                                "type": "mrkdwn",
                                "text": "Verantwortlich: Website-Betrieb/Datenschutz · Zielzeit: 7 Tage · https://saferpage.de/befunde/appshop.gira.de"
                            }
                        ]
                    }
                ]
            },
            "teams_payload": {
                "type": "message",
                "summary": "[HOCH] appshop.gira.de: Barrierefreiheit & Usability",
                "attachments": [
                    {
                        "contentType": "application/vnd.microsoft.card.adaptive",
                        "content": {
                            "type": "AdaptiveCard",
                            "version": "1.4",
                            "body": [
                                {
                                    "type": "TextBlock",
                                    "weight": "Bolder",
                                    "text": "Barrierefreiheit & Usability"
                                },
                                {
                                    "type": "TextBlock",
                                    "wrap": true,
                                    "text": "Alt-Texte, Formularlabels, Button-Namen, lang-Attribut und Überschriftenstruktur für Nutzer und Screenreader prüfen."
                                },
                                {
                                    "type": "FactSet",
                                    "facts": [
                                        {
                                            "title": "Domain",
                                            "value": "appshop.gira.de"
                                        },
                                        {
                                            "title": "Verantwortlich",
                                            "value": "Website-Betrieb/Datenschutz"
                                        },
                                        {
                                            "title": "Zielzeit",
                                            "value": "7 Tage"
                                        }
                                    ]
                                }
                            ]
                        }
                    }
                ]
            },
            "jira_payload": {
                "fields": {
                    "summary": "[appshop.gira.de] Barrierefreiheit & Usability",
                    "description": "Alt-Texte, Formularlabels, Button-Namen, lang-Attribut und Überschriftenstruktur für Nutzer und Screenreader prüfen.\n\nNachweis: https://saferpage.de/befunde/appshop.gira.de\nHintergrundseite: https://saferpage.de/guides/barrierefreiheit-cookie-banner-formulare\nRe-Scan: https://saferpage.de/scanbetrieb/appshop.gira.de",
                    "labels": [
                        "saferpage",
                        "privacyops",
                        "remediation",
                        "hoch"
                    ],
                    "priority": {
                        "name": "High"
                    }
                }
            }
        },
        {
            "id": "sp-fix-cdfcaeec9387b0b63fcfa18b",
            "ticket_id": "remediation_button_name_missing",
            "channel": "jira_slack_webhook",
            "priority": "hoch",
            "severity": "critical",
            "owner": "Website-Betrieb/Datenschutz",
            "sla": "7 Tage",
            "summary": "[appshop.gira.de] Buttons ohne erkennbaren Namen",
            "description": "Buttons mit sichtbarem Text oder aria-label beschriften.",
            "idempotency_key": "sp-fix-cdfcaeec9387b0b63fcfa18b",
            "headers": {
                "X-SaferPage-Event": "operator.remediation.ticket_ready",
                "X-SaferPage-Schema": "operator-remediation-ticket-delivery.v1",
                "X-SaferPage-Idempotency-Key": "sp-fix-cdfcaeec9387b0b63fcfa18b",
                "X-SaferPage-Body-SHA256": "e961ee007abf58fd3942aa3729c09bac10a8790121a5c8cc19596173329db3be",
                "X-SaferPage-Signature": "sha256=<HMAC ueber canonical_webhook_body>"
            },
            "webhook_payload": {
                "event": "operator.remediation.ticket_ready",
                "domain": "appshop.gira.de",
                "scan_id": "1025dbf6-260d-4ec2-a8ed-ebf88afbf2bb",
                "ticket_id": "remediation_button_name_missing",
                "priority": "hoch",
                "severity": "critical",
                "owner": "Website-Betrieb/Datenschutz",
                "sla": "7 Tage",
                "title": "Buttons ohne erkennbaren Namen",
                "evidence": "",
                "action": "Buttons mit sichtbarem Text oder aria-label beschriften.",
                "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/appshop.gira.de",
                    "rescan": "https://saferpage.de/scanbetrieb/appshop.gira.de",
                    "report": "https://saferpage.de/appshop.gira.de",
                    "fix_guides": "https://saferpage.de/fix-guides/appshop.gira.de"
                }
            },
            "canonical_webhook_body": "{\"event\":\"operator.remediation.ticket_ready\",\"domain\":\"appshop.gira.de\",\"scan_id\":\"1025dbf6-260d-4ec2-a8ed-ebf88afbf2bb\",\"ticket_id\":\"remediation_button_name_missing\",\"priority\":\"hoch\",\"severity\":\"critical\",\"owner\":\"Website-Betrieb/Datenschutz\",\"sla\":\"7 Tage\",\"title\":\"Buttons ohne erkennbaren Namen\",\"evidence\":\"\",\"action\":\"Buttons mit sichtbarem Text oder aria-label beschriften.\",\"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/appshop.gira.de\",\"rescan\":\"https://saferpage.de/scanbetrieb/appshop.gira.de\",\"report\":\"https://saferpage.de/appshop.gira.de\",\"fix_guides\":\"https://saferpage.de/fix-guides/appshop.gira.de\"}}",
            "canonical_body_sha256": "e961ee007abf58fd3942aa3729c09bac10a8790121a5c8cc19596173329db3be",
            "slack_payload": {
                "text": "[HOCH] appshop.gira.de: Buttons ohne erkennbaren Namen",
                "blocks": [
                    {
                        "type": "section",
                        "text": {
                            "type": "mrkdwn",
                            "text": "*Buttons ohne erkennbaren Namen*\nButtons mit sichtbarem Text oder aria-label beschriften."
                        }
                    },
                    {
                        "type": "context",
                        "elements": [
                            {
                                "type": "mrkdwn",
                                "text": "Verantwortlich: Website-Betrieb/Datenschutz · Zielzeit: 7 Tage · https://saferpage.de/befunde/appshop.gira.de"
                            }
                        ]
                    }
                ]
            },
            "teams_payload": {
                "type": "message",
                "summary": "[HOCH] appshop.gira.de: Buttons ohne erkennbaren Namen",
                "attachments": [
                    {
                        "contentType": "application/vnd.microsoft.card.adaptive",
                        "content": {
                            "type": "AdaptiveCard",
                            "version": "1.4",
                            "body": [
                                {
                                    "type": "TextBlock",
                                    "weight": "Bolder",
                                    "text": "Buttons ohne erkennbaren Namen"
                                },
                                {
                                    "type": "TextBlock",
                                    "wrap": true,
                                    "text": "Buttons mit sichtbarem Text oder aria-label beschriften."
                                },
                                {
                                    "type": "FactSet",
                                    "facts": [
                                        {
                                            "title": "Domain",
                                            "value": "appshop.gira.de"
                                        },
                                        {
                                            "title": "Verantwortlich",
                                            "value": "Website-Betrieb/Datenschutz"
                                        },
                                        {
                                            "title": "Zielzeit",
                                            "value": "7 Tage"
                                        }
                                    ]
                                }
                            ]
                        }
                    }
                ]
            },
            "jira_payload": {
                "fields": {
                    "summary": "[appshop.gira.de] Buttons ohne erkennbaren Namen",
                    "description": "Buttons mit sichtbarem Text oder aria-label beschriften.\n\nNachweis: https://saferpage.de/befunde/appshop.gira.de\nHintergrundseite: https://saferpage.de/guides/barrierefreiheit-cookie-banner-formulare\nRe-Scan: https://saferpage.de/scanbetrieb/appshop.gira.de",
                    "labels": [
                        "saferpage",
                        "privacyops",
                        "remediation",
                        "hoch"
                    ],
                    "priority": {
                        "name": "High"
                    }
                }
            }
        },
        {
            "id": "sp-fix-ce048bea80e9f03dfe7d75ef",
            "ticket_id": "remediation_known_vulnerability_advisory",
            "channel": "jira_slack_webhook",
            "priority": "hoch",
            "severity": "critical",
            "owner": "Website-Betrieb/Datenschutz",
            "sla": "7 Tage",
            "summary": "[appshop.gira.de] CVE-2015-9251: Cross-Site Scripting (XSS) in jquery",
            "description": "Aktualisiere das betroffene Open-Source-Paket auf eine nicht betroffene Version.",
            "idempotency_key": "sp-fix-ce048bea80e9f03dfe7d75ef",
            "headers": {
                "X-SaferPage-Event": "operator.remediation.ticket_ready",
                "X-SaferPage-Schema": "operator-remediation-ticket-delivery.v1",
                "X-SaferPage-Idempotency-Key": "sp-fix-ce048bea80e9f03dfe7d75ef",
                "X-SaferPage-Body-SHA256": "980e6a4a29e119ed279249fce890f8e74a15f3fb11b31853e5f6928b42a27ab3",
                "X-SaferPage-Signature": "sha256=<HMAC ueber canonical_webhook_body>"
            },
            "webhook_payload": {
                "event": "operator.remediation.ticket_ready",
                "domain": "appshop.gira.de",
                "scan_id": "1025dbf6-260d-4ec2-a8ed-ebf88afbf2bb",
                "ticket_id": "remediation_known_vulnerability_advisory",
                "priority": "hoch",
                "severity": "critical",
                "owner": "Website-Betrieb/Datenschutz",
                "sla": "7 Tage",
                "title": "CVE-2015-9251: Cross-Site Scripting (XSS) in jquery",
                "evidence": "",
                "action": "Aktualisiere das betroffene Open-Source-Paket auf eine nicht betroffene Version.",
                "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/sichtbare-versionen-und-cves-beheben",
                    "evidence": "https://saferpage.de/befunde/appshop.gira.de",
                    "rescan": "https://saferpage.de/scanbetrieb/appshop.gira.de",
                    "report": "https://saferpage.de/appshop.gira.de",
                    "fix_guides": "https://saferpage.de/fix-guides/appshop.gira.de"
                }
            },
            "canonical_webhook_body": "{\"event\":\"operator.remediation.ticket_ready\",\"domain\":\"appshop.gira.de\",\"scan_id\":\"1025dbf6-260d-4ec2-a8ed-ebf88afbf2bb\",\"ticket_id\":\"remediation_known_vulnerability_advisory\",\"priority\":\"hoch\",\"severity\":\"critical\",\"owner\":\"Website-Betrieb/Datenschutz\",\"sla\":\"7 Tage\",\"title\":\"CVE-2015-9251: Cross-Site Scripting (XSS) in jquery\",\"evidence\":\"\",\"action\":\"Aktualisiere das betroffene Open-Source-Paket auf eine nicht betroffene Version.\",\"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/sichtbare-versionen-und-cves-beheben\",\"evidence\":\"https://saferpage.de/befunde/appshop.gira.de\",\"rescan\":\"https://saferpage.de/scanbetrieb/appshop.gira.de\",\"report\":\"https://saferpage.de/appshop.gira.de\",\"fix_guides\":\"https://saferpage.de/fix-guides/appshop.gira.de\"}}",
            "canonical_body_sha256": "980e6a4a29e119ed279249fce890f8e74a15f3fb11b31853e5f6928b42a27ab3",
            "slack_payload": {
                "text": "[HOCH] appshop.gira.de: CVE-2015-9251: Cross-Site Scripting (XSS) in jquery",
                "blocks": [
                    {
                        "type": "section",
                        "text": {
                            "type": "mrkdwn",
                            "text": "*CVE-2015-9251: Cross-Site Scripting (XSS) in jquery*\nAktualisiere das betroffene Open-Source-Paket auf eine nicht betroffene Version."
                        }
                    },
                    {
                        "type": "context",
                        "elements": [
                            {
                                "type": "mrkdwn",
                                "text": "Verantwortlich: Website-Betrieb/Datenschutz · Zielzeit: 7 Tage · https://saferpage.de/befunde/appshop.gira.de"
                            }
                        ]
                    }
                ]
            },
            "teams_payload": {
                "type": "message",
                "summary": "[HOCH] appshop.gira.de: CVE-2015-9251: Cross-Site Scripting (XSS) in jquery",
                "attachments": [
                    {
                        "contentType": "application/vnd.microsoft.card.adaptive",
                        "content": {
                            "type": "AdaptiveCard",
                            "version": "1.4",
                            "body": [
                                {
                                    "type": "TextBlock",
                                    "weight": "Bolder",
                                    "text": "CVE-2015-9251: Cross-Site Scripting (XSS) in jquery"
                                },
                                {
                                    "type": "TextBlock",
                                    "wrap": true,
                                    "text": "Aktualisiere das betroffene Open-Source-Paket auf eine nicht betroffene Version."
                                },
                                {
                                    "type": "FactSet",
                                    "facts": [
                                        {
                                            "title": "Domain",
                                            "value": "appshop.gira.de"
                                        },
                                        {
                                            "title": "Verantwortlich",
                                            "value": "Website-Betrieb/Datenschutz"
                                        },
                                        {
                                            "title": "Zielzeit",
                                            "value": "7 Tage"
                                        }
                                    ]
                                }
                            ]
                        }
                    }
                ]
            },
            "jira_payload": {
                "fields": {
                    "summary": "[appshop.gira.de] CVE-2015-9251: Cross-Site Scripting (XSS) in jquery",
                    "description": "Aktualisiere das betroffene Open-Source-Paket auf eine nicht betroffene Version.\n\nNachweis: https://saferpage.de/befunde/appshop.gira.de\nHintergrundseite: https://saferpage.de/guides/sichtbare-versionen-und-cves-beheben\nRe-Scan: https://saferpage.de/scanbetrieb/appshop.gira.de",
                    "labels": [
                        "saferpage",
                        "privacyops",
                        "remediation",
                        "hoch"
                    ],
                    "priority": {
                        "name": "High"
                    }
                }
            }
        },
        {
            "id": "sp-fix-1b10fc6695aa323646ae3558",
            "ticket_id": "remediation_consent_accept_only",
            "channel": "jira_slack_webhook",
            "priority": "hoch",
            "severity": "critical",
            "owner": "Website-Betrieb/Datenschutz",
            "sla": "7 Tage",
            "summary": "[appshop.gira.de] Consent wirkt wie Nur-Akzeptieren",
            "description": "Cookie-Auswahl und Ablehnen-Option sichtbar anbieten.",
            "idempotency_key": "sp-fix-1b10fc6695aa323646ae3558",
            "headers": {
                "X-SaferPage-Event": "operator.remediation.ticket_ready",
                "X-SaferPage-Schema": "operator-remediation-ticket-delivery.v1",
                "X-SaferPage-Idempotency-Key": "sp-fix-1b10fc6695aa323646ae3558",
                "X-SaferPage-Body-SHA256": "97dfa4da28ff6d88aa36c1e7682a2481b76dc7b28bea551976a64944b12306af",
                "X-SaferPage-Signature": "sha256=<HMAC ueber canonical_webhook_body>"
            },
            "webhook_payload": {
                "event": "operator.remediation.ticket_ready",
                "domain": "appshop.gira.de",
                "scan_id": "1025dbf6-260d-4ec2-a8ed-ebf88afbf2bb",
                "ticket_id": "remediation_consent_accept_only",
                "priority": "hoch",
                "severity": "critical",
                "owner": "Website-Betrieb/Datenschutz",
                "sla": "7 Tage",
                "title": "Consent wirkt wie Nur-Akzeptieren",
                "evidence": "",
                "action": "Cookie-Auswahl und Ablehnen-Option sichtbar anbieten.",
                "acceptance_criteria": [
                    "Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.",
                    "Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.",
                    "Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe."
                ],
                "links": {
                    "guide": "https://saferpage.de/guides/tracking-und-consent-reparieren",
                    "evidence": "https://saferpage.de/befunde/appshop.gira.de",
                    "rescan": "https://saferpage.de/scanbetrieb/appshop.gira.de",
                    "report": "https://saferpage.de/appshop.gira.de",
                    "fix_guides": "https://saferpage.de/fix-guides/appshop.gira.de"
                }
            },
            "canonical_webhook_body": "{\"event\":\"operator.remediation.ticket_ready\",\"domain\":\"appshop.gira.de\",\"scan_id\":\"1025dbf6-260d-4ec2-a8ed-ebf88afbf2bb\",\"ticket_id\":\"remediation_consent_accept_only\",\"priority\":\"hoch\",\"severity\":\"critical\",\"owner\":\"Website-Betrieb/Datenschutz\",\"sla\":\"7 Tage\",\"title\":\"Consent wirkt wie Nur-Akzeptieren\",\"evidence\":\"\",\"action\":\"Cookie-Auswahl und Ablehnen-Option sichtbar anbieten.\",\"acceptance_criteria\":[\"Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.\",\"Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.\",\"Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe.\"],\"links\":{\"guide\":\"https://saferpage.de/guides/tracking-und-consent-reparieren\",\"evidence\":\"https://saferpage.de/befunde/appshop.gira.de\",\"rescan\":\"https://saferpage.de/scanbetrieb/appshop.gira.de\",\"report\":\"https://saferpage.de/appshop.gira.de\",\"fix_guides\":\"https://saferpage.de/fix-guides/appshop.gira.de\"}}",
            "canonical_body_sha256": "97dfa4da28ff6d88aa36c1e7682a2481b76dc7b28bea551976a64944b12306af",
            "slack_payload": {
                "text": "[HOCH] appshop.gira.de: Consent wirkt wie Nur-Akzeptieren",
                "blocks": [
                    {
                        "type": "section",
                        "text": {
                            "type": "mrkdwn",
                            "text": "*Consent wirkt wie Nur-Akzeptieren*\nCookie-Auswahl und Ablehnen-Option sichtbar anbieten."
                        }
                    },
                    {
                        "type": "context",
                        "elements": [
                            {
                                "type": "mrkdwn",
                                "text": "Verantwortlich: Website-Betrieb/Datenschutz · Zielzeit: 7 Tage · https://saferpage.de/befunde/appshop.gira.de"
                            }
                        ]
                    }
                ]
            },
            "teams_payload": {
                "type": "message",
                "summary": "[HOCH] appshop.gira.de: Consent wirkt wie Nur-Akzeptieren",
                "attachments": [
                    {
                        "contentType": "application/vnd.microsoft.card.adaptive",
                        "content": {
                            "type": "AdaptiveCard",
                            "version": "1.4",
                            "body": [
                                {
                                    "type": "TextBlock",
                                    "weight": "Bolder",
                                    "text": "Consent wirkt wie Nur-Akzeptieren"
                                },
                                {
                                    "type": "TextBlock",
                                    "wrap": true,
                                    "text": "Cookie-Auswahl und Ablehnen-Option sichtbar anbieten."
                                },
                                {
                                    "type": "FactSet",
                                    "facts": [
                                        {
                                            "title": "Domain",
                                            "value": "appshop.gira.de"
                                        },
                                        {
                                            "title": "Verantwortlich",
                                            "value": "Website-Betrieb/Datenschutz"
                                        },
                                        {
                                            "title": "Zielzeit",
                                            "value": "7 Tage"
                                        }
                                    ]
                                }
                            ]
                        }
                    }
                ]
            },
            "jira_payload": {
                "fields": {
                    "summary": "[appshop.gira.de] Consent wirkt wie Nur-Akzeptieren",
                    "description": "Cookie-Auswahl und Ablehnen-Option sichtbar anbieten.\n\nNachweis: https://saferpage.de/befunde/appshop.gira.de\nHintergrundseite: https://saferpage.de/guides/tracking-und-consent-reparieren\nRe-Scan: https://saferpage.de/scanbetrieb/appshop.gira.de",
                    "labels": [
                        "saferpage",
                        "privacyops",
                        "remediation",
                        "hoch"
                    ],
                    "priority": {
                        "name": "High"
                    }
                }
            }
        },
        {
            "id": "sp-fix-abd455d68012437d768aa96f",
            "ticket_id": "remediation_consent_banner_dark_pattern_risk",
            "channel": "jira_slack_webhook",
            "priority": "hoch",
            "severity": "critical",
            "owner": "Website-Betrieb/Datenschutz",
            "sla": "7 Tage",
            "summary": "[appshop.gira.de] Consent-Banner mit Dark-Pattern-/UX-Risiko",
            "description": "Ablehnen, Einstellungen und Akzeptieren gleichwertig anbieten und Reject technisch wirksam machen.",
            "idempotency_key": "sp-fix-abd455d68012437d768aa96f",
            "headers": {
                "X-SaferPage-Event": "operator.remediation.ticket_ready",
                "X-SaferPage-Schema": "operator-remediation-ticket-delivery.v1",
                "X-SaferPage-Idempotency-Key": "sp-fix-abd455d68012437d768aa96f",
                "X-SaferPage-Body-SHA256": "3300d4dd7a094c215d5001dbea2948040aaf03f77b6be4bedcf8965ecf0e2b6c",
                "X-SaferPage-Signature": "sha256=<HMAC ueber canonical_webhook_body>"
            },
            "webhook_payload": {
                "event": "operator.remediation.ticket_ready",
                "domain": "appshop.gira.de",
                "scan_id": "1025dbf6-260d-4ec2-a8ed-ebf88afbf2bb",
                "ticket_id": "remediation_consent_banner_dark_pattern_risk",
                "priority": "hoch",
                "severity": "critical",
                "owner": "Website-Betrieb/Datenschutz",
                "sla": "7 Tage",
                "title": "Consent-Banner mit Dark-Pattern-/UX-Risiko",
                "evidence": "",
                "action": "Ablehnen, Einstellungen und Akzeptieren gleichwertig anbieten und Reject technisch wirksam machen.",
                "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/appshop.gira.de",
                    "rescan": "https://saferpage.de/scanbetrieb/appshop.gira.de",
                    "report": "https://saferpage.de/appshop.gira.de",
                    "fix_guides": "https://saferpage.de/fix-guides/appshop.gira.de"
                }
            },
            "canonical_webhook_body": "{\"event\":\"operator.remediation.ticket_ready\",\"domain\":\"appshop.gira.de\",\"scan_id\":\"1025dbf6-260d-4ec2-a8ed-ebf88afbf2bb\",\"ticket_id\":\"remediation_consent_banner_dark_pattern_risk\",\"priority\":\"hoch\",\"severity\":\"critical\",\"owner\":\"Website-Betrieb/Datenschutz\",\"sla\":\"7 Tage\",\"title\":\"Consent-Banner mit Dark-Pattern-/UX-Risiko\",\"evidence\":\"\",\"action\":\"Ablehnen, Einstellungen und Akzeptieren gleichwertig anbieten und Reject technisch wirksam machen.\",\"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/appshop.gira.de\",\"rescan\":\"https://saferpage.de/scanbetrieb/appshop.gira.de\",\"report\":\"https://saferpage.de/appshop.gira.de\",\"fix_guides\":\"https://saferpage.de/fix-guides/appshop.gira.de\"}}",
            "canonical_body_sha256": "3300d4dd7a094c215d5001dbea2948040aaf03f77b6be4bedcf8965ecf0e2b6c",
            "slack_payload": {
                "text": "[HOCH] appshop.gira.de: Consent-Banner mit Dark-Pattern-/UX-Risiko",
                "blocks": [
                    {
                        "type": "section",
                        "text": {
                            "type": "mrkdwn",
                            "text": "*Consent-Banner mit Dark-Pattern-/UX-Risiko*\nAblehnen, Einstellungen und Akzeptieren gleichwertig anbieten und Reject technisch wirksam machen."
                        }
                    },
                    {
                        "type": "context",
                        "elements": [
                            {
                                "type": "mrkdwn",
                                "text": "Verantwortlich: Website-Betrieb/Datenschutz · Zielzeit: 7 Tage · https://saferpage.de/befunde/appshop.gira.de"
                            }
                        ]
                    }
                ]
            },
            "teams_payload": {
                "type": "message",
                "summary": "[HOCH] appshop.gira.de: Consent-Banner mit Dark-Pattern-/UX-Risiko",
                "attachments": [
                    {
                        "contentType": "application/vnd.microsoft.card.adaptive",
                        "content": {
                            "type": "AdaptiveCard",
                            "version": "1.4",
                            "body": [
                                {
                                    "type": "TextBlock",
                                    "weight": "Bolder",
                                    "text": "Consent-Banner mit Dark-Pattern-/UX-Risiko"
                                },
                                {
                                    "type": "TextBlock",
                                    "wrap": true,
                                    "text": "Ablehnen, Einstellungen und Akzeptieren gleichwertig anbieten und Reject technisch wirksam machen."
                                },
                                {
                                    "type": "FactSet",
                                    "facts": [
                                        {
                                            "title": "Domain",
                                            "value": "appshop.gira.de"
                                        },
                                        {
                                            "title": "Verantwortlich",
                                            "value": "Website-Betrieb/Datenschutz"
                                        },
                                        {
                                            "title": "Zielzeit",
                                            "value": "7 Tage"
                                        }
                                    ]
                                }
                            ]
                        }
                    }
                ]
            },
            "jira_payload": {
                "fields": {
                    "summary": "[appshop.gira.de] Consent-Banner mit Dark-Pattern-/UX-Risiko",
                    "description": "Ablehnen, Einstellungen und Akzeptieren gleichwertig anbieten und Reject technisch wirksam machen.\n\nNachweis: https://saferpage.de/befunde/appshop.gira.de\nHintergrundseite: https://saferpage.de/guides/tracking-und-consent-reparieren\nRe-Scan: https://saferpage.de/scanbetrieb/appshop.gira.de",
                    "labels": [
                        "saferpage",
                        "privacyops",
                        "remediation",
                        "hoch"
                    ],
                    "priority": {
                        "name": "High"
                    }
                }
            }
        },
        {
            "id": "sp-fix-98c589311ff87b9078d3e297",
            "ticket_id": "remediation_browser_consent_accept_only",
            "channel": "jira_slack_webhook",
            "priority": "hoch",
            "severity": "critical",
            "owner": "Website-Betrieb/Datenschutz",
            "sla": "7 Tage",
            "summary": "[appshop.gira.de] Consent-Banner wirkt im Browser wie Akzeptieren-only",
            "description": "Ablehnen und Einstellungen im ersten Banner-Layer sichtbar und gleichwertig anbieten.",
            "idempotency_key": "sp-fix-98c589311ff87b9078d3e297",
            "headers": {
                "X-SaferPage-Event": "operator.remediation.ticket_ready",
                "X-SaferPage-Schema": "operator-remediation-ticket-delivery.v1",
                "X-SaferPage-Idempotency-Key": "sp-fix-98c589311ff87b9078d3e297",
                "X-SaferPage-Body-SHA256": "a34a8cf978ea3ac83d76623f53b247c653cdb74838060b2a5b36a43558dacb60",
                "X-SaferPage-Signature": "sha256=<HMAC ueber canonical_webhook_body>"
            },
            "webhook_payload": {
                "event": "operator.remediation.ticket_ready",
                "domain": "appshop.gira.de",
                "scan_id": "1025dbf6-260d-4ec2-a8ed-ebf88afbf2bb",
                "ticket_id": "remediation_browser_consent_accept_only",
                "priority": "hoch",
                "severity": "critical",
                "owner": "Website-Betrieb/Datenschutz",
                "sla": "7 Tage",
                "title": "Consent-Banner wirkt im Browser wie Akzeptieren-only",
                "evidence": "",
                "action": "Ablehnen und Einstellungen im ersten Banner-Layer sichtbar und gleichwertig anbieten.",
                "acceptance_criteria": [
                    "Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.",
                    "Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.",
                    "Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe."
                ],
                "links": {
                    "guide": "https://saferpage.de/guides/tracking-und-consent-reparieren",
                    "evidence": "https://saferpage.de/befunde/appshop.gira.de",
                    "rescan": "https://saferpage.de/scanbetrieb/appshop.gira.de",
                    "report": "https://saferpage.de/appshop.gira.de",
                    "fix_guides": "https://saferpage.de/fix-guides/appshop.gira.de"
                }
            },
            "canonical_webhook_body": "{\"event\":\"operator.remediation.ticket_ready\",\"domain\":\"appshop.gira.de\",\"scan_id\":\"1025dbf6-260d-4ec2-a8ed-ebf88afbf2bb\",\"ticket_id\":\"remediation_browser_consent_accept_only\",\"priority\":\"hoch\",\"severity\":\"critical\",\"owner\":\"Website-Betrieb/Datenschutz\",\"sla\":\"7 Tage\",\"title\":\"Consent-Banner wirkt im Browser wie Akzeptieren-only\",\"evidence\":\"\",\"action\":\"Ablehnen und Einstellungen im ersten Banner-Layer sichtbar und gleichwertig anbieten.\",\"acceptance_criteria\":[\"Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.\",\"Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.\",\"Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe.\"],\"links\":{\"guide\":\"https://saferpage.de/guides/tracking-und-consent-reparieren\",\"evidence\":\"https://saferpage.de/befunde/appshop.gira.de\",\"rescan\":\"https://saferpage.de/scanbetrieb/appshop.gira.de\",\"report\":\"https://saferpage.de/appshop.gira.de\",\"fix_guides\":\"https://saferpage.de/fix-guides/appshop.gira.de\"}}",
            "canonical_body_sha256": "a34a8cf978ea3ac83d76623f53b247c653cdb74838060b2a5b36a43558dacb60",
            "slack_payload": {
                "text": "[HOCH] appshop.gira.de: Consent-Banner wirkt im Browser wie Akzeptieren-only",
                "blocks": [
                    {
                        "type": "section",
                        "text": {
                            "type": "mrkdwn",
                            "text": "*Consent-Banner wirkt im Browser wie Akzeptieren-only*\nAblehnen und Einstellungen im ersten Banner-Layer sichtbar und gleichwertig anbieten."
                        }
                    },
                    {
                        "type": "context",
                        "elements": [
                            {
                                "type": "mrkdwn",
                                "text": "Verantwortlich: Website-Betrieb/Datenschutz · Zielzeit: 7 Tage · https://saferpage.de/befunde/appshop.gira.de"
                            }
                        ]
                    }
                ]
            },
            "teams_payload": {
                "type": "message",
                "summary": "[HOCH] appshop.gira.de: Consent-Banner wirkt im Browser wie Akzeptieren-only",
                "attachments": [
                    {
                        "contentType": "application/vnd.microsoft.card.adaptive",
                        "content": {
                            "type": "AdaptiveCard",
                            "version": "1.4",
                            "body": [
                                {
                                    "type": "TextBlock",
                                    "weight": "Bolder",
                                    "text": "Consent-Banner wirkt im Browser wie Akzeptieren-only"
                                },
                                {
                                    "type": "TextBlock",
                                    "wrap": true,
                                    "text": "Ablehnen und Einstellungen im ersten Banner-Layer sichtbar und gleichwertig anbieten."
                                },
                                {
                                    "type": "FactSet",
                                    "facts": [
                                        {
                                            "title": "Domain",
                                            "value": "appshop.gira.de"
                                        },
                                        {
                                            "title": "Verantwortlich",
                                            "value": "Website-Betrieb/Datenschutz"
                                        },
                                        {
                                            "title": "Zielzeit",
                                            "value": "7 Tage"
                                        }
                                    ]
                                }
                            ]
                        }
                    }
                ]
            },
            "jira_payload": {
                "fields": {
                    "summary": "[appshop.gira.de] Consent-Banner wirkt im Browser wie Akzeptieren-only",
                    "description": "Ablehnen und Einstellungen im ersten Banner-Layer sichtbar und gleichwertig anbieten.\n\nNachweis: https://saferpage.de/befunde/appshop.gira.de\nHintergrundseite: https://saferpage.de/guides/tracking-und-consent-reparieren\nRe-Scan: https://saferpage.de/scanbetrieb/appshop.gira.de",
                    "labels": [
                        "saferpage",
                        "privacyops",
                        "remediation",
                        "hoch"
                    ],
                    "priority": {
                        "name": "High"
                    }
                }
            }
        },
        {
            "id": "sp-fix-34d2d691384d6cd68aaa9c0d",
            "ticket_id": "remediation_missing_csp",
            "channel": "jira_slack_webhook",
            "priority": "hoch",
            "severity": "critical",
            "owner": "Website-Betrieb/Datenschutz",
            "sla": "7 Tage",
            "summary": "[appshop.gira.de] Content-Security-Policy fehlt",
            "description": "Header `content-security-policy` setzen und nach Deployment erneut prüfen.",
            "idempotency_key": "sp-fix-34d2d691384d6cd68aaa9c0d",
            "headers": {
                "X-SaferPage-Event": "operator.remediation.ticket_ready",
                "X-SaferPage-Schema": "operator-remediation-ticket-delivery.v1",
                "X-SaferPage-Idempotency-Key": "sp-fix-34d2d691384d6cd68aaa9c0d",
                "X-SaferPage-Body-SHA256": "c7a3eafbadd485404329d25b785b53b108c239991161596d6f8eb848031cee97",
                "X-SaferPage-Signature": "sha256=<HMAC ueber canonical_webhook_body>"
            },
            "webhook_payload": {
                "event": "operator.remediation.ticket_ready",
                "domain": "appshop.gira.de",
                "scan_id": "1025dbf6-260d-4ec2-a8ed-ebf88afbf2bb",
                "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/appshop.gira.de",
                    "rescan": "https://saferpage.de/scanbetrieb/appshop.gira.de",
                    "report": "https://saferpage.de/appshop.gira.de",
                    "fix_guides": "https://saferpage.de/fix-guides/appshop.gira.de"
                }
            },
            "canonical_webhook_body": "{\"event\":\"operator.remediation.ticket_ready\",\"domain\":\"appshop.gira.de\",\"scan_id\":\"1025dbf6-260d-4ec2-a8ed-ebf88afbf2bb\",\"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/appshop.gira.de\",\"rescan\":\"https://saferpage.de/scanbetrieb/appshop.gira.de\",\"report\":\"https://saferpage.de/appshop.gira.de\",\"fix_guides\":\"https://saferpage.de/fix-guides/appshop.gira.de\"}}",
            "canonical_body_sha256": "c7a3eafbadd485404329d25b785b53b108c239991161596d6f8eb848031cee97",
            "slack_payload": {
                "text": "[HOCH] appshop.gira.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/appshop.gira.de"
                            }
                        ]
                    }
                ]
            },
            "teams_payload": {
                "type": "message",
                "summary": "[HOCH] appshop.gira.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": "appshop.gira.de"
                                        },
                                        {
                                            "title": "Verantwortlich",
                                            "value": "Website-Betrieb/Datenschutz"
                                        },
                                        {
                                            "title": "Zielzeit",
                                            "value": "7 Tage"
                                        }
                                    ]
                                }
                            ]
                        }
                    }
                ]
            },
            "jira_payload": {
                "fields": {
                    "summary": "[appshop.gira.de] Content-Security-Policy fehlt",
                    "description": "Header `content-security-policy` setzen und nach Deployment erneut prüfen.\n\nNachweis: https://saferpage.de/befunde/appshop.gira.de\nHintergrundseite: https://saferpage.de/guides/security-header-setzen\nRe-Scan: https://saferpage.de/scanbetrieb/appshop.gira.de",
                    "labels": [
                        "saferpage",
                        "privacyops",
                        "remediation",
                        "hoch"
                    ],
                    "priority": {
                        "name": "High"
                    }
                }
            }
        },
        {
            "id": "sp-fix-b49bfd5238b9a1ab8001aae5",
            "ticket_id": "remediation_cookie_missing_secure",
            "channel": "jira_slack_webhook",
            "priority": "hoch",
            "severity": "critical",
            "owner": "Website-Betrieb/Datenschutz",
            "sla": "7 Tage",
            "summary": "[appshop.gira.de] Cookie ohne Secure-Flag",
            "description": "Cookies über HTTPS mit Secure-Flag setzen.",
            "idempotency_key": "sp-fix-b49bfd5238b9a1ab8001aae5",
            "headers": {
                "X-SaferPage-Event": "operator.remediation.ticket_ready",
                "X-SaferPage-Schema": "operator-remediation-ticket-delivery.v1",
                "X-SaferPage-Idempotency-Key": "sp-fix-b49bfd5238b9a1ab8001aae5",
                "X-SaferPage-Body-SHA256": "98c6382ff42ccf63e022a572620c44fc136833b53445c1c1450987fb68dd44b0",
                "X-SaferPage-Signature": "sha256=<HMAC ueber canonical_webhook_body>"
            },
            "webhook_payload": {
                "event": "operator.remediation.ticket_ready",
                "domain": "appshop.gira.de",
                "scan_id": "1025dbf6-260d-4ec2-a8ed-ebf88afbf2bb",
                "ticket_id": "remediation_cookie_missing_secure",
                "priority": "hoch",
                "severity": "critical",
                "owner": "Website-Betrieb/Datenschutz",
                "sla": "7 Tage",
                "title": "Cookie ohne Secure-Flag",
                "evidence": "",
                "action": "Cookies über HTTPS mit Secure-Flag setzen.",
                "acceptance_criteria": [
                    "Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.",
                    "Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.",
                    "Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe."
                ],
                "links": {
                    "guide": "https://saferpage.de/guides/cookies-sicher-konfigurieren",
                    "evidence": "https://saferpage.de/befunde/appshop.gira.de",
                    "rescan": "https://saferpage.de/scanbetrieb/appshop.gira.de",
                    "report": "https://saferpage.de/appshop.gira.de",
                    "fix_guides": "https://saferpage.de/fix-guides/appshop.gira.de"
                }
            },
            "canonical_webhook_body": "{\"event\":\"operator.remediation.ticket_ready\",\"domain\":\"appshop.gira.de\",\"scan_id\":\"1025dbf6-260d-4ec2-a8ed-ebf88afbf2bb\",\"ticket_id\":\"remediation_cookie_missing_secure\",\"priority\":\"hoch\",\"severity\":\"critical\",\"owner\":\"Website-Betrieb/Datenschutz\",\"sla\":\"7 Tage\",\"title\":\"Cookie ohne Secure-Flag\",\"evidence\":\"\",\"action\":\"Cookies über HTTPS mit Secure-Flag setzen.\",\"acceptance_criteria\":[\"Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.\",\"Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.\",\"Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe.\"],\"links\":{\"guide\":\"https://saferpage.de/guides/cookies-sicher-konfigurieren\",\"evidence\":\"https://saferpage.de/befunde/appshop.gira.de\",\"rescan\":\"https://saferpage.de/scanbetrieb/appshop.gira.de\",\"report\":\"https://saferpage.de/appshop.gira.de\",\"fix_guides\":\"https://saferpage.de/fix-guides/appshop.gira.de\"}}",
            "canonical_body_sha256": "98c6382ff42ccf63e022a572620c44fc136833b53445c1c1450987fb68dd44b0",
            "slack_payload": {
                "text": "[HOCH] appshop.gira.de: Cookie ohne Secure-Flag",
                "blocks": [
                    {
                        "type": "section",
                        "text": {
                            "type": "mrkdwn",
                            "text": "*Cookie ohne Secure-Flag*\nCookies über HTTPS mit Secure-Flag setzen."
                        }
                    },
                    {
                        "type": "context",
                        "elements": [
                            {
                                "type": "mrkdwn",
                                "text": "Verantwortlich: Website-Betrieb/Datenschutz · Zielzeit: 7 Tage · https://saferpage.de/befunde/appshop.gira.de"
                            }
                        ]
                    }
                ]
            },
            "teams_payload": {
                "type": "message",
                "summary": "[HOCH] appshop.gira.de: Cookie ohne Secure-Flag",
                "attachments": [
                    {
                        "contentType": "application/vnd.microsoft.card.adaptive",
                        "content": {
                            "type": "AdaptiveCard",
                            "version": "1.4",
                            "body": [
                                {
                                    "type": "TextBlock",
                                    "weight": "Bolder",
                                    "text": "Cookie ohne Secure-Flag"
                                },
                                {
                                    "type": "TextBlock",
                                    "wrap": true,
                                    "text": "Cookies über HTTPS mit Secure-Flag setzen."
                                },
                                {
                                    "type": "FactSet",
                                    "facts": [
                                        {
                                            "title": "Domain",
                                            "value": "appshop.gira.de"
                                        },
                                        {
                                            "title": "Verantwortlich",
                                            "value": "Website-Betrieb/Datenschutz"
                                        },
                                        {
                                            "title": "Zielzeit",
                                            "value": "7 Tage"
                                        }
                                    ]
                                }
                            ]
                        }
                    }
                ]
            },
            "jira_payload": {
                "fields": {
                    "summary": "[appshop.gira.de] Cookie ohne Secure-Flag",
                    "description": "Cookies über HTTPS mit Secure-Flag setzen.\n\nNachweis: https://saferpage.de/befunde/appshop.gira.de\nHintergrundseite: https://saferpage.de/guides/cookies-sicher-konfigurieren\nRe-Scan: https://saferpage.de/scanbetrieb/appshop.gira.de",
                    "labels": [
                        "saferpage",
                        "privacyops",
                        "remediation",
                        "hoch"
                    ],
                    "priority": {
                        "name": "High"
                    }
                }
            }
        },
        {
            "id": "sp-fix-846076c7efcd54688648b48c",
            "ticket_id": "remediation_accessibility_gap",
            "channel": "jira_slack_webhook",
            "priority": "hoch",
            "severity": "critical",
            "owner": "UX/IT",
            "sla": "7 Tage",
            "summary": "[appshop.gira.de] Cookie-Banner, Formulare und mobile Nutzung barriereärmer machen",
            "description": "Befund mit Hintergrundseite einordnen und danach erneut scannen.",
            "idempotency_key": "sp-fix-846076c7efcd54688648b48c",
            "headers": {
                "X-SaferPage-Event": "operator.remediation.ticket_ready",
                "X-SaferPage-Schema": "operator-remediation-ticket-delivery.v1",
                "X-SaferPage-Idempotency-Key": "sp-fix-846076c7efcd54688648b48c",
                "X-SaferPage-Body-SHA256": "28465213ae03965a908f57c3e2928c5b4e9881b48092635fa6fb8b701215d418",
                "X-SaferPage-Signature": "sha256=<HMAC ueber canonical_webhook_body>"
            },
            "webhook_payload": {
                "event": "operator.remediation.ticket_ready",
                "domain": "appshop.gira.de",
                "scan_id": "1025dbf6-260d-4ec2-a8ed-ebf88afbf2bb",
                "ticket_id": "remediation_accessibility_gap",
                "priority": "hoch",
                "severity": "critical",
                "owner": "UX/IT",
                "sla": "7 Tage",
                "title": "Cookie-Banner, Formulare und mobile Nutzung barriereärmer machen",
                "evidence": "14 Bild(er), 2 Formularfeld(er), 2 Button(s) im passiven HTML-Sample auf Basis-Barrierefreiheit geprüft.",
                "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/barrierefreiheit-cookie-banner-formulare",
                    "evidence": "https://saferpage.de/befunde/appshop.gira.de",
                    "rescan": "https://saferpage.de/scanbetrieb/appshop.gira.de",
                    "report": "https://saferpage.de/appshop.gira.de",
                    "fix_guides": "https://saferpage.de/fix-guides/appshop.gira.de"
                }
            },
            "canonical_webhook_body": "{\"event\":\"operator.remediation.ticket_ready\",\"domain\":\"appshop.gira.de\",\"scan_id\":\"1025dbf6-260d-4ec2-a8ed-ebf88afbf2bb\",\"ticket_id\":\"remediation_accessibility_gap\",\"priority\":\"hoch\",\"severity\":\"critical\",\"owner\":\"UX/IT\",\"sla\":\"7 Tage\",\"title\":\"Cookie-Banner, Formulare und mobile Nutzung barriereärmer machen\",\"evidence\":\"14 Bild(er), 2 Formularfeld(er), 2 Button(s) im passiven HTML-Sample auf Basis-Barrierefreiheit geprüft.\",\"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/barrierefreiheit-cookie-banner-formulare\",\"evidence\":\"https://saferpage.de/befunde/appshop.gira.de\",\"rescan\":\"https://saferpage.de/scanbetrieb/appshop.gira.de\",\"report\":\"https://saferpage.de/appshop.gira.de\",\"fix_guides\":\"https://saferpage.de/fix-guides/appshop.gira.de\"}}",
            "canonical_body_sha256": "28465213ae03965a908f57c3e2928c5b4e9881b48092635fa6fb8b701215d418",
            "slack_payload": {
                "text": "[HOCH] appshop.gira.de: Cookie-Banner, Formulare und mobile Nutzung barriereärmer machen",
                "blocks": [
                    {
                        "type": "section",
                        "text": {
                            "type": "mrkdwn",
                            "text": "*Cookie-Banner, Formulare und mobile Nutzung barriereärmer machen*\nBefund mit Hintergrundseite einordnen und danach erneut scannen."
                        }
                    },
                    {
                        "type": "context",
                        "elements": [
                            {
                                "type": "mrkdwn",
                                "text": "Verantwortlich: UX/IT · Zielzeit: 7 Tage · https://saferpage.de/befunde/appshop.gira.de"
                            }
                        ]
                    }
                ]
            },
            "teams_payload": {
                "type": "message",
                "summary": "[HOCH] appshop.gira.de: Cookie-Banner, Formulare und mobile Nutzung barriereärmer machen",
                "attachments": [
                    {
                        "contentType": "application/vnd.microsoft.card.adaptive",
                        "content": {
                            "type": "AdaptiveCard",
                            "version": "1.4",
                            "body": [
                                {
                                    "type": "TextBlock",
                                    "weight": "Bolder",
                                    "text": "Cookie-Banner, Formulare und mobile Nutzung barriereärmer machen"
                                },
                                {
                                    "type": "TextBlock",
                                    "wrap": true,
                                    "text": "Befund mit Hintergrundseite einordnen und danach erneut scannen."
                                },
                                {
                                    "type": "FactSet",
                                    "facts": [
                                        {
                                            "title": "Domain",
                                            "value": "appshop.gira.de"
                                        },
                                        {
                                            "title": "Verantwortlich",
                                            "value": "UX/IT"
                                        },
                                        {
                                            "title": "Zielzeit",
                                            "value": "7 Tage"
                                        }
                                    ]
                                }
                            ]
                        }
                    }
                ]
            },
            "jira_payload": {
                "fields": {
                    "summary": "[appshop.gira.de] Cookie-Banner, Formulare und mobile Nutzung barriereärmer machen",
                    "description": "Befund mit Hintergrundseite einordnen und danach erneut scannen.\n\nNachweis: https://saferpage.de/befunde/appshop.gira.de\nHintergrundseite: https://saferpage.de/guides/barrierefreiheit-cookie-banner-formulare\nRe-Scan: https://saferpage.de/scanbetrieb/appshop.gira.de",
                    "labels": [
                        "saferpage",
                        "privacyops",
                        "remediation",
                        "hoch"
                    ],
                    "priority": {
                        "name": "High"
                    }
                }
            }
        },
        {
            "id": "sp-fix-02ceceb010dee8c19274809d",
            "ticket_id": "remediation_consent_no_reject_option",
            "channel": "jira_slack_webhook",
            "priority": "hoch",
            "severity": "critical",
            "owner": "Website-Betrieb/Datenschutz",
            "sla": "7 Tage",
            "summary": "[appshop.gira.de] Cookie-Hinweis ohne klare Ablehnen-Option",
            "description": "Ablehnen sollte genauso leicht auffindbar sein wie Akzeptieren.",
            "idempotency_key": "sp-fix-02ceceb010dee8c19274809d",
            "headers": {
                "X-SaferPage-Event": "operator.remediation.ticket_ready",
                "X-SaferPage-Schema": "operator-remediation-ticket-delivery.v1",
                "X-SaferPage-Idempotency-Key": "sp-fix-02ceceb010dee8c19274809d",
                "X-SaferPage-Body-SHA256": "c5faa5b617960806b9e069d64e11ee3858b828a5fb4a008226fbb61cda4bfc26",
                "X-SaferPage-Signature": "sha256=<HMAC ueber canonical_webhook_body>"
            },
            "webhook_payload": {
                "event": "operator.remediation.ticket_ready",
                "domain": "appshop.gira.de",
                "scan_id": "1025dbf6-260d-4ec2-a8ed-ebf88afbf2bb",
                "ticket_id": "remediation_consent_no_reject_option",
                "priority": "hoch",
                "severity": "critical",
                "owner": "Website-Betrieb/Datenschutz",
                "sla": "7 Tage",
                "title": "Cookie-Hinweis ohne klare Ablehnen-Option",
                "evidence": "",
                "action": "Ablehnen sollte genauso leicht auffindbar sein wie Akzeptieren.",
                "acceptance_criteria": [
                    "Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.",
                    "Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.",
                    "Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe."
                ],
                "links": {
                    "guide": "https://saferpage.de/guides/tracking-und-consent-reparieren",
                    "evidence": "https://saferpage.de/befunde/appshop.gira.de",
                    "rescan": "https://saferpage.de/scanbetrieb/appshop.gira.de",
                    "report": "https://saferpage.de/appshop.gira.de",
                    "fix_guides": "https://saferpage.de/fix-guides/appshop.gira.de"
                }
            },
            "canonical_webhook_body": "{\"event\":\"operator.remediation.ticket_ready\",\"domain\":\"appshop.gira.de\",\"scan_id\":\"1025dbf6-260d-4ec2-a8ed-ebf88afbf2bb\",\"ticket_id\":\"remediation_consent_no_reject_option\",\"priority\":\"hoch\",\"severity\":\"critical\",\"owner\":\"Website-Betrieb/Datenschutz\",\"sla\":\"7 Tage\",\"title\":\"Cookie-Hinweis ohne klare Ablehnen-Option\",\"evidence\":\"\",\"action\":\"Ablehnen sollte genauso leicht auffindbar sein wie Akzeptieren.\",\"acceptance_criteria\":[\"Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.\",\"Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.\",\"Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe.\"],\"links\":{\"guide\":\"https://saferpage.de/guides/tracking-und-consent-reparieren\",\"evidence\":\"https://saferpage.de/befunde/appshop.gira.de\",\"rescan\":\"https://saferpage.de/scanbetrieb/appshop.gira.de\",\"report\":\"https://saferpage.de/appshop.gira.de\",\"fix_guides\":\"https://saferpage.de/fix-guides/appshop.gira.de\"}}",
            "canonical_body_sha256": "c5faa5b617960806b9e069d64e11ee3858b828a5fb4a008226fbb61cda4bfc26",
            "slack_payload": {
                "text": "[HOCH] appshop.gira.de: Cookie-Hinweis ohne klare Ablehnen-Option",
                "blocks": [
                    {
                        "type": "section",
                        "text": {
                            "type": "mrkdwn",
                            "text": "*Cookie-Hinweis ohne klare Ablehnen-Option*\nAblehnen sollte genauso leicht auffindbar sein wie Akzeptieren."
                        }
                    },
                    {
                        "type": "context",
                        "elements": [
                            {
                                "type": "mrkdwn",
                                "text": "Verantwortlich: Website-Betrieb/Datenschutz · Zielzeit: 7 Tage · https://saferpage.de/befunde/appshop.gira.de"
                            }
                        ]
                    }
                ]
            },
            "teams_payload": {
                "type": "message",
                "summary": "[HOCH] appshop.gira.de: Cookie-Hinweis ohne klare Ablehnen-Option",
                "attachments": [
                    {
                        "contentType": "application/vnd.microsoft.card.adaptive",
                        "content": {
                            "type": "AdaptiveCard",
                            "version": "1.4",
                            "body": [
                                {
                                    "type": "TextBlock",
                                    "weight": "Bolder",
                                    "text": "Cookie-Hinweis ohne klare Ablehnen-Option"
                                },
                                {
                                    "type": "TextBlock",
                                    "wrap": true,
                                    "text": "Ablehnen sollte genauso leicht auffindbar sein wie Akzeptieren."
                                },
                                {
                                    "type": "FactSet",
                                    "facts": [
                                        {
                                            "title": "Domain",
                                            "value": "appshop.gira.de"
                                        },
                                        {
                                            "title": "Verantwortlich",
                                            "value": "Website-Betrieb/Datenschutz"
                                        },
                                        {
                                            "title": "Zielzeit",
                                            "value": "7 Tage"
                                        }
                                    ]
                                }
                            ]
                        }
                    }
                ]
            },
            "jira_payload": {
                "fields": {
                    "summary": "[appshop.gira.de] Cookie-Hinweis ohne klare Ablehnen-Option",
                    "description": "Ablehnen sollte genauso leicht auffindbar sein wie Akzeptieren.\n\nNachweis: https://saferpage.de/befunde/appshop.gira.de\nHintergrundseite: https://saferpage.de/guides/tracking-und-consent-reparieren\nRe-Scan: https://saferpage.de/scanbetrieb/appshop.gira.de",
                    "labels": [
                        "saferpage",
                        "privacyops",
                        "remediation",
                        "hoch"
                    ],
                    "priority": {
                        "name": "High"
                    }
                }
            }
        },
        {
            "id": "sp-fix-05950ff30d3befd66dc3799d",
            "ticket_id": "remediation_module_privacy_consent",
            "channel": "jira_slack_webhook",
            "priority": "hoch",
            "severity": "critical",
            "owner": "Website-Betrieb/Datenschutz",
            "sla": "7 Tage",
            "summary": "[appshop.gira.de] Datenschutz, Cookies & Consent",
            "description": "Tracking, Werbung und nicht notwendige Cookies vor Zustimmung blockieren und verständlich erklären.",
            "idempotency_key": "sp-fix-05950ff30d3befd66dc3799d",
            "headers": {
                "X-SaferPage-Event": "operator.remediation.ticket_ready",
                "X-SaferPage-Schema": "operator-remediation-ticket-delivery.v1",
                "X-SaferPage-Idempotency-Key": "sp-fix-05950ff30d3befd66dc3799d",
                "X-SaferPage-Body-SHA256": "c7c071cdec88cc9fc4c38e5de9cd8265c1a66104922466c6d181eab9b3fae133",
                "X-SaferPage-Signature": "sha256=<HMAC ueber canonical_webhook_body>"
            },
            "webhook_payload": {
                "event": "operator.remediation.ticket_ready",
                "domain": "appshop.gira.de",
                "scan_id": "1025dbf6-260d-4ec2-a8ed-ebf88afbf2bb",
                "ticket_id": "remediation_module_privacy_consent",
                "priority": "hoch",
                "severity": "critical",
                "owner": "Website-Betrieb/Datenschutz",
                "sla": "7 Tage",
                "title": "Datenschutz, Cookies & Consent",
                "evidence": "0 Tracking-Script(s), 1 Cookie(s) vor Einwilligung, 0 Tracking-Cookie(s), Ablehnen-Option: nein, Consent-Audit: 46.",
                "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/appshop.gira.de",
                    "rescan": "https://saferpage.de/scanbetrieb/appshop.gira.de",
                    "report": "https://saferpage.de/appshop.gira.de",
                    "fix_guides": "https://saferpage.de/fix-guides/appshop.gira.de"
                }
            },
            "canonical_webhook_body": "{\"event\":\"operator.remediation.ticket_ready\",\"domain\":\"appshop.gira.de\",\"scan_id\":\"1025dbf6-260d-4ec2-a8ed-ebf88afbf2bb\",\"ticket_id\":\"remediation_module_privacy_consent\",\"priority\":\"hoch\",\"severity\":\"critical\",\"owner\":\"Website-Betrieb/Datenschutz\",\"sla\":\"7 Tage\",\"title\":\"Datenschutz, Cookies & Consent\",\"evidence\":\"0 Tracking-Script(s), 1 Cookie(s) vor Einwilligung, 0 Tracking-Cookie(s), Ablehnen-Option: nein, Consent-Audit: 46.\",\"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/appshop.gira.de\",\"rescan\":\"https://saferpage.de/scanbetrieb/appshop.gira.de\",\"report\":\"https://saferpage.de/appshop.gira.de\",\"fix_guides\":\"https://saferpage.de/fix-guides/appshop.gira.de\"}}",
            "canonical_body_sha256": "c7c071cdec88cc9fc4c38e5de9cd8265c1a66104922466c6d181eab9b3fae133",
            "slack_payload": {
                "text": "[HOCH] appshop.gira.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: 7 Tage · https://saferpage.de/befunde/appshop.gira.de"
                            }
                        ]
                    }
                ]
            },
            "teams_payload": {
                "type": "message",
                "summary": "[HOCH] appshop.gira.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": "appshop.gira.de"
                                        },
                                        {
                                            "title": "Verantwortlich",
                                            "value": "Website-Betrieb/Datenschutz"
                                        },
                                        {
                                            "title": "Zielzeit",
                                            "value": "7 Tage"
                                        }
                                    ]
                                }
                            ]
                        }
                    }
                ]
            },
            "jira_payload": {
                "fields": {
                    "summary": "[appshop.gira.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/appshop.gira.de\nHintergrundseite: https://saferpage.de/guides/tracking-und-consent-reparieren\nRe-Scan: https://saferpage.de/scanbetrieb/appshop.gira.de",
                    "labels": [
                        "saferpage",
                        "privacyops",
                        "remediation",
                        "hoch"
                    ],
                    "priority": {
                        "name": "High"
                    }
                }
            }
        },
        {
            "id": "sp-fix-18a338b306151f26fb1765dd",
            "ticket_id": "remediation_form_label_missing",
            "channel": "jira_slack_webhook",
            "priority": "hoch",
            "severity": "critical",
            "owner": "Website-Betrieb/Datenschutz",
            "sla": "7 Tage",
            "summary": "[appshop.gira.de] Formularfelder ohne klare Beschriftung",
            "description": "Für jedes Eingabefeld ein sichtbares label, aria-label oder aria-labelledby setzen.",
            "idempotency_key": "sp-fix-18a338b306151f26fb1765dd",
            "headers": {
                "X-SaferPage-Event": "operator.remediation.ticket_ready",
                "X-SaferPage-Schema": "operator-remediation-ticket-delivery.v1",
                "X-SaferPage-Idempotency-Key": "sp-fix-18a338b306151f26fb1765dd",
                "X-SaferPage-Body-SHA256": "5bcde03e9d401f1ab9747d12cd7296f30f4600a4c11f27c348b37f9c6b7598d9",
                "X-SaferPage-Signature": "sha256=<HMAC ueber canonical_webhook_body>"
            },
            "webhook_payload": {
                "event": "operator.remediation.ticket_ready",
                "domain": "appshop.gira.de",
                "scan_id": "1025dbf6-260d-4ec2-a8ed-ebf88afbf2bb",
                "ticket_id": "remediation_form_label_missing",
                "priority": "hoch",
                "severity": "critical",
                "owner": "Website-Betrieb/Datenschutz",
                "sla": "7 Tage",
                "title": "Formularfelder ohne klare Beschriftung",
                "evidence": "",
                "action": "Für jedes Eingabefeld ein sichtbares label, aria-label oder aria-labelledby setzen.",
                "acceptance_criteria": [
                    "Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.",
                    "Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.",
                    "Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe."
                ],
                "links": {
                    "guide": "https://saferpage.de/guides/barrierefreiheit-cookie-banner-formulare",
                    "evidence": "https://saferpage.de/befunde/appshop.gira.de",
                    "rescan": "https://saferpage.de/scanbetrieb/appshop.gira.de",
                    "report": "https://saferpage.de/appshop.gira.de",
                    "fix_guides": "https://saferpage.de/fix-guides/appshop.gira.de"
                }
            },
            "canonical_webhook_body": "{\"event\":\"operator.remediation.ticket_ready\",\"domain\":\"appshop.gira.de\",\"scan_id\":\"1025dbf6-260d-4ec2-a8ed-ebf88afbf2bb\",\"ticket_id\":\"remediation_form_label_missing\",\"priority\":\"hoch\",\"severity\":\"critical\",\"owner\":\"Website-Betrieb/Datenschutz\",\"sla\":\"7 Tage\",\"title\":\"Formularfelder ohne klare Beschriftung\",\"evidence\":\"\",\"action\":\"Für jedes Eingabefeld ein sichtbares label, aria-label oder aria-labelledby setzen.\",\"acceptance_criteria\":[\"Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.\",\"Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.\",\"Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe.\"],\"links\":{\"guide\":\"https://saferpage.de/guides/barrierefreiheit-cookie-banner-formulare\",\"evidence\":\"https://saferpage.de/befunde/appshop.gira.de\",\"rescan\":\"https://saferpage.de/scanbetrieb/appshop.gira.de\",\"report\":\"https://saferpage.de/appshop.gira.de\",\"fix_guides\":\"https://saferpage.de/fix-guides/appshop.gira.de\"}}",
            "canonical_body_sha256": "5bcde03e9d401f1ab9747d12cd7296f30f4600a4c11f27c348b37f9c6b7598d9",
            "slack_payload": {
                "text": "[HOCH] appshop.gira.de: Formularfelder ohne klare Beschriftung",
                "blocks": [
                    {
                        "type": "section",
                        "text": {
                            "type": "mrkdwn",
                            "text": "*Formularfelder ohne klare Beschriftung*\nFür jedes Eingabefeld ein sichtbares label, aria-label oder aria-labelledby setzen."
                        }
                    },
                    {
                        "type": "context",
                        "elements": [
                            {
                                "type": "mrkdwn",
                                "text": "Verantwortlich: Website-Betrieb/Datenschutz · Zielzeit: 7 Tage · https://saferpage.de/befunde/appshop.gira.de"
                            }
                        ]
                    }
                ]
            },
            "teams_payload": {
                "type": "message",
                "summary": "[HOCH] appshop.gira.de: Formularfelder ohne klare Beschriftung",
                "attachments": [
                    {
                        "contentType": "application/vnd.microsoft.card.adaptive",
                        "content": {
                            "type": "AdaptiveCard",
                            "version": "1.4",
                            "body": [
                                {
                                    "type": "TextBlock",
                                    "weight": "Bolder",
                                    "text": "Formularfelder ohne klare Beschriftung"
                                },
                                {
                                    "type": "TextBlock",
                                    "wrap": true,
                                    "text": "Für jedes Eingabefeld ein sichtbares label, aria-label oder aria-labelledby setzen."
                                },
                                {
                                    "type": "FactSet",
                                    "facts": [
                                        {
                                            "title": "Domain",
                                            "value": "appshop.gira.de"
                                        },
                                        {
                                            "title": "Verantwortlich",
                                            "value": "Website-Betrieb/Datenschutz"
                                        },
                                        {
                                            "title": "Zielzeit",
                                            "value": "7 Tage"
                                        }
                                    ]
                                }
                            ]
                        }
                    }
                ]
            },
            "jira_payload": {
                "fields": {
                    "summary": "[appshop.gira.de] Formularfelder ohne klare Beschriftung",
                    "description": "Für jedes Eingabefeld ein sichtbares label, aria-label oder aria-labelledby setzen.\n\nNachweis: https://saferpage.de/befunde/appshop.gira.de\nHintergrundseite: https://saferpage.de/guides/barrierefreiheit-cookie-banner-formulare\nRe-Scan: https://saferpage.de/scanbetrieb/appshop.gira.de",
                    "labels": [
                        "saferpage",
                        "privacyops",
                        "remediation",
                        "hoch"
                    ],
                    "priority": {
                        "name": "High"
                    }
                }
            }
        },
        {
            "id": "sp-fix-120a4e4d784c00d1d9a7df69",
            "ticket_id": "remediation_missing_hsts",
            "channel": "jira_slack_webhook",
            "priority": "hoch",
            "severity": "critical",
            "owner": "Website-Betrieb/Datenschutz",
            "sla": "7 Tage",
            "summary": "[appshop.gira.de] HSTS fehlt",
            "description": "Header `strict-transport-security` setzen und nach Deployment erneut prüfen.",
            "idempotency_key": "sp-fix-120a4e4d784c00d1d9a7df69",
            "headers": {
                "X-SaferPage-Event": "operator.remediation.ticket_ready",
                "X-SaferPage-Schema": "operator-remediation-ticket-delivery.v1",
                "X-SaferPage-Idempotency-Key": "sp-fix-120a4e4d784c00d1d9a7df69",
                "X-SaferPage-Body-SHA256": "6c9ab7559fb424125c70464d0f067c3430e67b8c44f28ddfdba45fb920b8933e",
                "X-SaferPage-Signature": "sha256=<HMAC ueber canonical_webhook_body>"
            },
            "webhook_payload": {
                "event": "operator.remediation.ticket_ready",
                "domain": "appshop.gira.de",
                "scan_id": "1025dbf6-260d-4ec2-a8ed-ebf88afbf2bb",
                "ticket_id": "remediation_missing_hsts",
                "priority": "hoch",
                "severity": "critical",
                "owner": "Website-Betrieb/Datenschutz",
                "sla": "7 Tage",
                "title": "HSTS fehlt",
                "evidence": "",
                "action": "Header `strict-transport-security` setzen und nach Deployment erneut prüfen.",
                "acceptance_criteria": [
                    "Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.",
                    "Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.",
                    "Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe."
                ],
                "links": {
                    "guide": "https://saferpage.de/guides/security-header-setzen",
                    "evidence": "https://saferpage.de/befunde/appshop.gira.de",
                    "rescan": "https://saferpage.de/scanbetrieb/appshop.gira.de",
                    "report": "https://saferpage.de/appshop.gira.de",
                    "fix_guides": "https://saferpage.de/fix-guides/appshop.gira.de"
                }
            },
            "canonical_webhook_body": "{\"event\":\"operator.remediation.ticket_ready\",\"domain\":\"appshop.gira.de\",\"scan_id\":\"1025dbf6-260d-4ec2-a8ed-ebf88afbf2bb\",\"ticket_id\":\"remediation_missing_hsts\",\"priority\":\"hoch\",\"severity\":\"critical\",\"owner\":\"Website-Betrieb/Datenschutz\",\"sla\":\"7 Tage\",\"title\":\"HSTS fehlt\",\"evidence\":\"\",\"action\":\"Header `strict-transport-security` setzen und nach Deployment erneut prüfen.\",\"acceptance_criteria\":[\"Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.\",\"Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.\",\"Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe.\"],\"links\":{\"guide\":\"https://saferpage.de/guides/security-header-setzen\",\"evidence\":\"https://saferpage.de/befunde/appshop.gira.de\",\"rescan\":\"https://saferpage.de/scanbetrieb/appshop.gira.de\",\"report\":\"https://saferpage.de/appshop.gira.de\",\"fix_guides\":\"https://saferpage.de/fix-guides/appshop.gira.de\"}}",
            "canonical_body_sha256": "6c9ab7559fb424125c70464d0f067c3430e67b8c44f28ddfdba45fb920b8933e",
            "slack_payload": {
                "text": "[HOCH] appshop.gira.de: HSTS fehlt",
                "blocks": [
                    {
                        "type": "section",
                        "text": {
                            "type": "mrkdwn",
                            "text": "*HSTS fehlt*\nHeader `strict-transport-security` setzen und nach Deployment erneut prüfen."
                        }
                    },
                    {
                        "type": "context",
                        "elements": [
                            {
                                "type": "mrkdwn",
                                "text": "Verantwortlich: Website-Betrieb/Datenschutz · Zielzeit: 7 Tage · https://saferpage.de/befunde/appshop.gira.de"
                            }
                        ]
                    }
                ]
            },
            "teams_payload": {
                "type": "message",
                "summary": "[HOCH] appshop.gira.de: HSTS fehlt",
                "attachments": [
                    {
                        "contentType": "application/vnd.microsoft.card.adaptive",
                        "content": {
                            "type": "AdaptiveCard",
                            "version": "1.4",
                            "body": [
                                {
                                    "type": "TextBlock",
                                    "weight": "Bolder",
                                    "text": "HSTS fehlt"
                                },
                                {
                                    "type": "TextBlock",
                                    "wrap": true,
                                    "text": "Header `strict-transport-security` setzen und nach Deployment erneut prüfen."
                                },
                                {
                                    "type": "FactSet",
                                    "facts": [
                                        {
                                            "title": "Domain",
                                            "value": "appshop.gira.de"
                                        },
                                        {
                                            "title": "Verantwortlich",
                                            "value": "Website-Betrieb/Datenschutz"
                                        },
                                        {
                                            "title": "Zielzeit",
                                            "value": "7 Tage"
                                        }
                                    ]
                                }
                            ]
                        }
                    }
                ]
            },
            "jira_payload": {
                "fields": {
                    "summary": "[appshop.gira.de] HSTS fehlt",
                    "description": "Header `strict-transport-security` setzen und nach Deployment erneut prüfen.\n\nNachweis: https://saferpage.de/befunde/appshop.gira.de\nHintergrundseite: https://saferpage.de/guides/security-header-setzen\nRe-Scan: https://saferpage.de/scanbetrieb/appshop.gira.de",
                    "labels": [
                        "saferpage",
                        "privacyops",
                        "remediation",
                        "hoch"
                    ],
                    "priority": {
                        "name": "High"
                    }
                }
            }
        },
        {
            "id": "sp-fix-bcfe6babd161590931697569",
            "ticket_id": "remediation_security_header_gap",
            "channel": "jira_slack_webhook",
            "priority": "hoch",
            "severity": "critical",
            "owner": "IT/Security",
            "sla": "7 Tage",
            "summary": "[appshop.gira.de] Security-Header, Referrer-Policy und Browser-Schutz setzen",
            "description": "Befund mit Hintergrundseite einordnen und danach erneut scannen.",
            "idempotency_key": "sp-fix-bcfe6babd161590931697569",
            "headers": {
                "X-SaferPage-Event": "operator.remediation.ticket_ready",
                "X-SaferPage-Schema": "operator-remediation-ticket-delivery.v1",
                "X-SaferPage-Idempotency-Key": "sp-fix-bcfe6babd161590931697569",
                "X-SaferPage-Body-SHA256": "69f80a27996565b32f29024a07d84594cbab2e174164ce0b65331e5a18d00eb1",
                "X-SaferPage-Signature": "sha256=<HMAC ueber canonical_webhook_body>"
            },
            "webhook_payload": {
                "event": "operator.remediation.ticket_ready",
                "domain": "appshop.gira.de",
                "scan_id": "1025dbf6-260d-4ec2-a8ed-ebf88afbf2bb",
                "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": "0 von 9 wichtigen Security-Headern vorhanden, 0 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/appshop.gira.de",
                    "rescan": "https://saferpage.de/scanbetrieb/appshop.gira.de",
                    "report": "https://saferpage.de/appshop.gira.de",
                    "fix_guides": "https://saferpage.de/fix-guides/appshop.gira.de"
                }
            },
            "canonical_webhook_body": "{\"event\":\"operator.remediation.ticket_ready\",\"domain\":\"appshop.gira.de\",\"scan_id\":\"1025dbf6-260d-4ec2-a8ed-ebf88afbf2bb\",\"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\":\"0 von 9 wichtigen Security-Headern vorhanden, 0 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/appshop.gira.de\",\"rescan\":\"https://saferpage.de/scanbetrieb/appshop.gira.de\",\"report\":\"https://saferpage.de/appshop.gira.de\",\"fix_guides\":\"https://saferpage.de/fix-guides/appshop.gira.de\"}}",
            "canonical_body_sha256": "69f80a27996565b32f29024a07d84594cbab2e174164ce0b65331e5a18d00eb1",
            "slack_payload": {
                "text": "[HOCH] appshop.gira.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/appshop.gira.de"
                            }
                        ]
                    }
                ]
            },
            "teams_payload": {
                "type": "message",
                "summary": "[HOCH] appshop.gira.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": "appshop.gira.de"
                                        },
                                        {
                                            "title": "Verantwortlich",
                                            "value": "IT/Security"
                                        },
                                        {
                                            "title": "Zielzeit",
                                            "value": "7 Tage"
                                        }
                                    ]
                                }
                            ]
                        }
                    }
                ]
            },
            "jira_payload": {
                "fields": {
                    "summary": "[appshop.gira.de] Security-Header, Referrer-Policy und Browser-Schutz setzen",
                    "description": "Befund mit Hintergrundseite einordnen und danach erneut scannen.\n\nNachweis: https://saferpage.de/befunde/appshop.gira.de\nHintergrundseite: https://saferpage.de/guides/security-header-setzen\nRe-Scan: https://saferpage.de/scanbetrieb/appshop.gira.de",
                    "labels": [
                        "saferpage",
                        "privacyops",
                        "remediation",
                        "hoch"
                    ],
                    "priority": {
                        "name": "High"
                    }
                }
            }
        },
        {
            "id": "sp-fix-76dace2e7ddd0261c2bca234",
            "ticket_id": "remediation_module_security_tls",
            "channel": "jira_slack_webhook",
            "priority": "hoch",
            "severity": "critical",
            "owner": "Website-Betrieb/Datenschutz",
            "sla": "7 Tage",
            "summary": "[appshop.gira.de] Sicherheit, TLS & Header",
            "description": "HTTPS, Zertifikat, HSTS, CSP, zentrale Security-Header und externe Skriptquellen sauber konfigurieren.",
            "idempotency_key": "sp-fix-76dace2e7ddd0261c2bca234",
            "headers": {
                "X-SaferPage-Event": "operator.remediation.ticket_ready",
                "X-SaferPage-Schema": "operator-remediation-ticket-delivery.v1",
                "X-SaferPage-Idempotency-Key": "sp-fix-76dace2e7ddd0261c2bca234",
                "X-SaferPage-Body-SHA256": "78a3c91b3cb08a703b71b36234a510c5f2c2db33d651b92fcc9367720571e425",
                "X-SaferPage-Signature": "sha256=<HMAC ueber canonical_webhook_body>"
            },
            "webhook_payload": {
                "event": "operator.remediation.ticket_ready",
                "domain": "appshop.gira.de",
                "scan_id": "1025dbf6-260d-4ec2-a8ed-ebf88afbf2bb",
                "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: 0/9 vorhanden, 9 fehlen, externe Skript-Hosts: 1.",
                "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/appshop.gira.de",
                    "rescan": "https://saferpage.de/scanbetrieb/appshop.gira.de",
                    "report": "https://saferpage.de/appshop.gira.de",
                    "fix_guides": "https://saferpage.de/fix-guides/appshop.gira.de"
                }
            },
            "canonical_webhook_body": "{\"event\":\"operator.remediation.ticket_ready\",\"domain\":\"appshop.gira.de\",\"scan_id\":\"1025dbf6-260d-4ec2-a8ed-ebf88afbf2bb\",\"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: 0/9 vorhanden, 9 fehlen, externe Skript-Hosts: 1.\",\"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/appshop.gira.de\",\"rescan\":\"https://saferpage.de/scanbetrieb/appshop.gira.de\",\"report\":\"https://saferpage.de/appshop.gira.de\",\"fix_guides\":\"https://saferpage.de/fix-guides/appshop.gira.de\"}}",
            "canonical_body_sha256": "78a3c91b3cb08a703b71b36234a510c5f2c2db33d651b92fcc9367720571e425",
            "slack_payload": {
                "text": "[HOCH] appshop.gira.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/appshop.gira.de"
                            }
                        ]
                    }
                ]
            },
            "teams_payload": {
                "type": "message",
                "summary": "[HOCH] appshop.gira.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": "appshop.gira.de"
                                        },
                                        {
                                            "title": "Verantwortlich",
                                            "value": "Website-Betrieb/Datenschutz"
                                        },
                                        {
                                            "title": "Zielzeit",
                                            "value": "7 Tage"
                                        }
                                    ]
                                }
                            ]
                        }
                    }
                ]
            },
            "jira_payload": {
                "fields": {
                    "summary": "[appshop.gira.de] Sicherheit, TLS & Header",
                    "description": "HTTPS, Zertifikat, HSTS, CSP, zentrale Security-Header und externe Skriptquellen sauber konfigurieren.\n\nNachweis: https://saferpage.de/befunde/appshop.gira.de\nHintergrundseite: https://saferpage.de/guides/security-header-setzen\nRe-Scan: https://saferpage.de/scanbetrieb/appshop.gira.de",
                    "labels": [
                        "saferpage",
                        "privacyops",
                        "remediation",
                        "hoch"
                    ],
                    "priority": {
                        "name": "High"
                    }
                }
            }
        },
        {
            "id": "sp-fix-d8b407638c3a131e24111fd2",
            "ticket_id": "remediation_consent_preconsent_gap",
            "channel": "jira_slack_webhook",
            "priority": "hoch",
            "severity": "critical",
            "owner": "Marketing/IT",
            "sla": "7 Tage",
            "summary": "[appshop.gira.de] Tracking, Cookies oder Drittanbieter vor Einwilligung reparieren",
            "description": "Befund mit Hintergrundseite einordnen und danach erneut scannen.",
            "idempotency_key": "sp-fix-d8b407638c3a131e24111fd2",
            "headers": {
                "X-SaferPage-Event": "operator.remediation.ticket_ready",
                "X-SaferPage-Schema": "operator-remediation-ticket-delivery.v1",
                "X-SaferPage-Idempotency-Key": "sp-fix-d8b407638c3a131e24111fd2",
                "X-SaferPage-Body-SHA256": "82d812aa3ffd663d0e09fb73ffb1b09e4484458e352a7661b6677cf48aa14249",
                "X-SaferPage-Signature": "sha256=<HMAC ueber canonical_webhook_body>"
            },
            "webhook_payload": {
                "event": "operator.remediation.ticket_ready",
                "domain": "appshop.gira.de",
                "scan_id": "1025dbf6-260d-4ec2-a8ed-ebf88afbf2bb",
                "ticket_id": "remediation_consent_preconsent_gap",
                "priority": "hoch",
                "severity": "critical",
                "owner": "Marketing/IT",
                "sla": "7 Tage",
                "title": "Tracking, Cookies oder Drittanbieter vor Einwilligung reparieren",
                "evidence": "Consent, Tracking oder Drittanbieter wirken im Erstaufruf deutlich nachbesserungsbeduerftig.",
                "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/tracking-und-consent-reparieren",
                    "evidence": "https://saferpage.de/befunde/appshop.gira.de",
                    "rescan": "https://saferpage.de/scanbetrieb/appshop.gira.de",
                    "report": "https://saferpage.de/appshop.gira.de",
                    "fix_guides": "https://saferpage.de/fix-guides/appshop.gira.de"
                }
            },
            "canonical_webhook_body": "{\"event\":\"operator.remediation.ticket_ready\",\"domain\":\"appshop.gira.de\",\"scan_id\":\"1025dbf6-260d-4ec2-a8ed-ebf88afbf2bb\",\"ticket_id\":\"remediation_consent_preconsent_gap\",\"priority\":\"hoch\",\"severity\":\"critical\",\"owner\":\"Marketing/IT\",\"sla\":\"7 Tage\",\"title\":\"Tracking, Cookies oder Drittanbieter vor Einwilligung reparieren\",\"evidence\":\"Consent, Tracking oder Drittanbieter wirken im Erstaufruf deutlich nachbesserungsbeduerftig.\",\"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/tracking-und-consent-reparieren\",\"evidence\":\"https://saferpage.de/befunde/appshop.gira.de\",\"rescan\":\"https://saferpage.de/scanbetrieb/appshop.gira.de\",\"report\":\"https://saferpage.de/appshop.gira.de\",\"fix_guides\":\"https://saferpage.de/fix-guides/appshop.gira.de\"}}",
            "canonical_body_sha256": "82d812aa3ffd663d0e09fb73ffb1b09e4484458e352a7661b6677cf48aa14249",
            "slack_payload": {
                "text": "[HOCH] appshop.gira.de: Tracking, Cookies oder Drittanbieter vor Einwilligung reparieren",
                "blocks": [
                    {
                        "type": "section",
                        "text": {
                            "type": "mrkdwn",
                            "text": "*Tracking, Cookies oder Drittanbieter vor Einwilligung reparieren*\nBefund mit Hintergrundseite einordnen und danach erneut scannen."
                        }
                    },
                    {
                        "type": "context",
                        "elements": [
                            {
                                "type": "mrkdwn",
                                "text": "Verantwortlich: Marketing/IT · Zielzeit: 7 Tage · https://saferpage.de/befunde/appshop.gira.de"
                            }
                        ]
                    }
                ]
            },
            "teams_payload": {
                "type": "message",
                "summary": "[HOCH] appshop.gira.de: Tracking, Cookies oder Drittanbieter vor Einwilligung reparieren",
                "attachments": [
                    {
                        "contentType": "application/vnd.microsoft.card.adaptive",
                        "content": {
                            "type": "AdaptiveCard",
                            "version": "1.4",
                            "body": [
                                {
                                    "type": "TextBlock",
                                    "weight": "Bolder",
                                    "text": "Tracking, Cookies oder Drittanbieter vor Einwilligung reparieren"
                                },
                                {
                                    "type": "TextBlock",
                                    "wrap": true,
                                    "text": "Befund mit Hintergrundseite einordnen und danach erneut scannen."
                                },
                                {
                                    "type": "FactSet",
                                    "facts": [
                                        {
                                            "title": "Domain",
                                            "value": "appshop.gira.de"
                                        },
                                        {
                                            "title": "Verantwortlich",
                                            "value": "Marketing/IT"
                                        },
                                        {
                                            "title": "Zielzeit",
                                            "value": "7 Tage"
                                        }
                                    ]
                                }
                            ]
                        }
                    }
                ]
            },
            "jira_payload": {
                "fields": {
                    "summary": "[appshop.gira.de] Tracking, Cookies oder Drittanbieter vor Einwilligung reparieren",
                    "description": "Befund mit Hintergrundseite einordnen und danach erneut scannen.\n\nNachweis: https://saferpage.de/befunde/appshop.gira.de\nHintergrundseite: https://saferpage.de/guides/tracking-und-consent-reparieren\nRe-Scan: https://saferpage.de/scanbetrieb/appshop.gira.de",
                    "labels": [
                        "saferpage",
                        "privacyops",
                        "remediation",
                        "hoch"
                    ],
                    "priority": {
                        "name": "High"
                    }
                }
            }
        },
        {
            "id": "sp-fix-ad5d40590a0b44c55a77f734",
            "ticket_id": "remediation_missing_x_content_type_options",
            "channel": "jira_slack_webhook",
            "priority": "hoch",
            "severity": "critical",
            "owner": "Website-Betrieb/Datenschutz",
            "sla": "7 Tage",
            "summary": "[appshop.gira.de] X-Content-Type-Options fehlt",
            "description": "Header `x-content-type-options` setzen und nach Deployment erneut prüfen.",
            "idempotency_key": "sp-fix-ad5d40590a0b44c55a77f734",
            "headers": {
                "X-SaferPage-Event": "operator.remediation.ticket_ready",
                "X-SaferPage-Schema": "operator-remediation-ticket-delivery.v1",
                "X-SaferPage-Idempotency-Key": "sp-fix-ad5d40590a0b44c55a77f734",
                "X-SaferPage-Body-SHA256": "6c56d34a09b9ee56860d6b6af6f7e7457503a90f87b946c532e2a110a7336d4d",
                "X-SaferPage-Signature": "sha256=<HMAC ueber canonical_webhook_body>"
            },
            "webhook_payload": {
                "event": "operator.remediation.ticket_ready",
                "domain": "appshop.gira.de",
                "scan_id": "1025dbf6-260d-4ec2-a8ed-ebf88afbf2bb",
                "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/appshop.gira.de",
                    "rescan": "https://saferpage.de/scanbetrieb/appshop.gira.de",
                    "report": "https://saferpage.de/appshop.gira.de",
                    "fix_guides": "https://saferpage.de/fix-guides/appshop.gira.de"
                }
            },
            "canonical_webhook_body": "{\"event\":\"operator.remediation.ticket_ready\",\"domain\":\"appshop.gira.de\",\"scan_id\":\"1025dbf6-260d-4ec2-a8ed-ebf88afbf2bb\",\"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/appshop.gira.de\",\"rescan\":\"https://saferpage.de/scanbetrieb/appshop.gira.de\",\"report\":\"https://saferpage.de/appshop.gira.de\",\"fix_guides\":\"https://saferpage.de/fix-guides/appshop.gira.de\"}}",
            "canonical_body_sha256": "6c56d34a09b9ee56860d6b6af6f7e7457503a90f87b946c532e2a110a7336d4d",
            "slack_payload": {
                "text": "[HOCH] appshop.gira.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/appshop.gira.de"
                            }
                        ]
                    }
                ]
            },
            "teams_payload": {
                "type": "message",
                "summary": "[HOCH] appshop.gira.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": "appshop.gira.de"
                                        },
                                        {
                                            "title": "Verantwortlich",
                                            "value": "Website-Betrieb/Datenschutz"
                                        },
                                        {
                                            "title": "Zielzeit",
                                            "value": "7 Tage"
                                        }
                                    ]
                                }
                            ]
                        }
                    }
                ]
            },
            "jira_payload": {
                "fields": {
                    "summary": "[appshop.gira.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/appshop.gira.de\nHintergrundseite: https://saferpage.de/guides/security-header-setzen\nRe-Scan: https://saferpage.de/scanbetrieb/appshop.gira.de",
                    "labels": [
                        "saferpage",
                        "privacyops",
                        "remediation",
                        "hoch"
                    ],
                    "priority": {
                        "name": "High"
                    }
                }
            }
        },
        {
            "id": "sp-fix-cf8bd15b62b8420e5cb6a7af",
            "ticket_id": "remediation_missing_x_frame_options",
            "channel": "jira_slack_webhook",
            "priority": "hoch",
            "severity": "critical",
            "owner": "Website-Betrieb/Datenschutz",
            "sla": "7 Tage",
            "summary": "[appshop.gira.de] X-Frame-Options fehlt",
            "description": "Header `x-frame-options` setzen und nach Deployment erneut prüfen.",
            "idempotency_key": "sp-fix-cf8bd15b62b8420e5cb6a7af",
            "headers": {
                "X-SaferPage-Event": "operator.remediation.ticket_ready",
                "X-SaferPage-Schema": "operator-remediation-ticket-delivery.v1",
                "X-SaferPage-Idempotency-Key": "sp-fix-cf8bd15b62b8420e5cb6a7af",
                "X-SaferPage-Body-SHA256": "11fbd8204b8949c5c81f2a8f8e03c6d25ea53911847cf44f46f4cfe99b57b965",
                "X-SaferPage-Signature": "sha256=<HMAC ueber canonical_webhook_body>"
            },
            "webhook_payload": {
                "event": "operator.remediation.ticket_ready",
                "domain": "appshop.gira.de",
                "scan_id": "1025dbf6-260d-4ec2-a8ed-ebf88afbf2bb",
                "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/appshop.gira.de",
                    "rescan": "https://saferpage.de/scanbetrieb/appshop.gira.de",
                    "report": "https://saferpage.de/appshop.gira.de",
                    "fix_guides": "https://saferpage.de/fix-guides/appshop.gira.de"
                }
            },
            "canonical_webhook_body": "{\"event\":\"operator.remediation.ticket_ready\",\"domain\":\"appshop.gira.de\",\"scan_id\":\"1025dbf6-260d-4ec2-a8ed-ebf88afbf2bb\",\"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/appshop.gira.de\",\"rescan\":\"https://saferpage.de/scanbetrieb/appshop.gira.de\",\"report\":\"https://saferpage.de/appshop.gira.de\",\"fix_guides\":\"https://saferpage.de/fix-guides/appshop.gira.de\"}}",
            "canonical_body_sha256": "11fbd8204b8949c5c81f2a8f8e03c6d25ea53911847cf44f46f4cfe99b57b965",
            "slack_payload": {
                "text": "[HOCH] appshop.gira.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/appshop.gira.de"
                            }
                        ]
                    }
                ]
            },
            "teams_payload": {
                "type": "message",
                "summary": "[HOCH] appshop.gira.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": "appshop.gira.de"
                                        },
                                        {
                                            "title": "Verantwortlich",
                                            "value": "Website-Betrieb/Datenschutz"
                                        },
                                        {
                                            "title": "Zielzeit",
                                            "value": "7 Tage"
                                        }
                                    ]
                                }
                            ]
                        }
                    }
                ]
            },
            "jira_payload": {
                "fields": {
                    "summary": "[appshop.gira.de] X-Frame-Options fehlt",
                    "description": "Header `x-frame-options` setzen und nach Deployment erneut prüfen.\n\nNachweis: https://saferpage.de/befunde/appshop.gira.de\nHintergrundseite: https://saferpage.de/guides/security-header-setzen\nRe-Scan: https://saferpage.de/scanbetrieb/appshop.gira.de",
                    "labels": [
                        "saferpage",
                        "privacyops",
                        "remediation",
                        "hoch"
                    ],
                    "priority": {
                        "name": "High"
                    }
                }
            }
        },
        {
            "id": "sp-fix-886e56548e57ce65608d259c",
            "ticket_id": "remediation_consent_ux_gap",
            "channel": "jira_webhook",
            "priority": "mittel",
            "severity": "warning",
            "owner": "UX/Marketing/Datenschutz",
            "sla": "30 Tage",
            "summary": "[appshop.gira.de] Ablehnen, Widerruf und Banner-Usability verbessern",
            "description": "Befund mit Hintergrundseite einordnen und danach erneut scannen.",
            "idempotency_key": "sp-fix-886e56548e57ce65608d259c",
            "headers": {
                "X-SaferPage-Event": "operator.remediation.ticket_ready",
                "X-SaferPage-Schema": "operator-remediation-ticket-delivery.v1",
                "X-SaferPage-Idempotency-Key": "sp-fix-886e56548e57ce65608d259c",
                "X-SaferPage-Body-SHA256": "98f306ac94939ebacb78e0b345f8e3865376912d58d5aa89ead754f9fd7333c4",
                "X-SaferPage-Signature": "sha256=<HMAC ueber canonical_webhook_body>"
            },
            "webhook_payload": {
                "event": "operator.remediation.ticket_ready",
                "domain": "appshop.gira.de",
                "scan_id": "1025dbf6-260d-4ec2-a8ed-ebf88afbf2bb",
                "ticket_id": "remediation_consent_ux_gap",
                "priority": "mittel",
                "severity": "warning",
                "owner": "UX/Marketing/Datenschutz",
                "sla": "30 Tage",
                "title": "Ablehnen, Widerruf und Banner-Usability verbessern",
                "evidence": "Consent-Banner-UX: 2 auffällige Prüfpunkt(e), davon 1 hoch. Muster: Ablehnen nicht gleichwertig sichtbar.",
                "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/tracking-und-consent-reparieren",
                    "evidence": "https://saferpage.de/befunde/appshop.gira.de",
                    "rescan": "https://saferpage.de/scanbetrieb/appshop.gira.de",
                    "report": "https://saferpage.de/appshop.gira.de",
                    "fix_guides": "https://saferpage.de/fix-guides/appshop.gira.de"
                }
            },
            "canonical_webhook_body": "{\"event\":\"operator.remediation.ticket_ready\",\"domain\":\"appshop.gira.de\",\"scan_id\":\"1025dbf6-260d-4ec2-a8ed-ebf88afbf2bb\",\"ticket_id\":\"remediation_consent_ux_gap\",\"priority\":\"mittel\",\"severity\":\"warning\",\"owner\":\"UX/Marketing/Datenschutz\",\"sla\":\"30 Tage\",\"title\":\"Ablehnen, Widerruf und Banner-Usability verbessern\",\"evidence\":\"Consent-Banner-UX: 2 auffällige Prüfpunkt(e), davon 1 hoch. Muster: Ablehnen nicht gleichwertig sichtbar.\",\"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/tracking-und-consent-reparieren\",\"evidence\":\"https://saferpage.de/befunde/appshop.gira.de\",\"rescan\":\"https://saferpage.de/scanbetrieb/appshop.gira.de\",\"report\":\"https://saferpage.de/appshop.gira.de\",\"fix_guides\":\"https://saferpage.de/fix-guides/appshop.gira.de\"}}",
            "canonical_body_sha256": "98f306ac94939ebacb78e0b345f8e3865376912d58d5aa89ead754f9fd7333c4",
            "slack_payload": {
                "text": "[MITTEL] appshop.gira.de: Ablehnen, Widerruf und Banner-Usability verbessern",
                "blocks": [
                    {
                        "type": "section",
                        "text": {
                            "type": "mrkdwn",
                            "text": "*Ablehnen, Widerruf und Banner-Usability verbessern*\nBefund mit Hintergrundseite einordnen und danach erneut scannen."
                        }
                    },
                    {
                        "type": "context",
                        "elements": [
                            {
                                "type": "mrkdwn",
                                "text": "Verantwortlich: UX/Marketing/Datenschutz · Zielzeit: 30 Tage · https://saferpage.de/befunde/appshop.gira.de"
                            }
                        ]
                    }
                ]
            },
            "teams_payload": {
                "type": "message",
                "summary": "[MITTEL] appshop.gira.de: Ablehnen, Widerruf und Banner-Usability verbessern",
                "attachments": [
                    {
                        "contentType": "application/vnd.microsoft.card.adaptive",
                        "content": {
                            "type": "AdaptiveCard",
                            "version": "1.4",
                            "body": [
                                {
                                    "type": "TextBlock",
                                    "weight": "Bolder",
                                    "text": "Ablehnen, Widerruf und Banner-Usability verbessern"
                                },
                                {
                                    "type": "TextBlock",
                                    "wrap": true,
                                    "text": "Befund mit Hintergrundseite einordnen und danach erneut scannen."
                                },
                                {
                                    "type": "FactSet",
                                    "facts": [
                                        {
                                            "title": "Domain",
                                            "value": "appshop.gira.de"
                                        },
                                        {
                                            "title": "Verantwortlich",
                                            "value": "UX/Marketing/Datenschutz"
                                        },
                                        {
                                            "title": "Zielzeit",
                                            "value": "30 Tage"
                                        }
                                    ]
                                }
                            ]
                        }
                    }
                ]
            },
            "jira_payload": {
                "fields": {
                    "summary": "[appshop.gira.de] Ablehnen, Widerruf und Banner-Usability verbessern",
                    "description": "Befund mit Hintergrundseite einordnen und danach erneut scannen.\n\nNachweis: https://saferpage.de/befunde/appshop.gira.de\nHintergrundseite: https://saferpage.de/guides/tracking-und-consent-reparieren\nRe-Scan: https://saferpage.de/scanbetrieb/appshop.gira.de",
                    "labels": [
                        "saferpage",
                        "privacyops",
                        "remediation",
                        "mittel"
                    ],
                    "priority": {
                        "name": "Medium"
                    }
                }
            }
        },
        {
            "id": "sp-fix-1f2abebf3442362e2a575f02",
            "ticket_id": "mapping_cookie_session",
            "channel": "jira_webhook",
            "priority": "mittel",
            "severity": "warning",
            "owner": "Marketing/IT/Datenschutz",
            "sla": "30 Tage",
            "summary": "[appshop.gira.de] session",
            "description": "Zweck, Laufzeit, Anbieter und Consent-Erfordernis in Cookie-Erklärung und CMP pflegen.",
            "idempotency_key": "sp-fix-1f2abebf3442362e2a575f02",
            "headers": {
                "X-SaferPage-Event": "operator.remediation.ticket_ready",
                "X-SaferPage-Schema": "operator-remediation-ticket-delivery.v1",
                "X-SaferPage-Idempotency-Key": "sp-fix-1f2abebf3442362e2a575f02",
                "X-SaferPage-Body-SHA256": "26ab56d036c88faa684b6f4c2d80529eaab7a27ae35b05443cd845a78f2e98fe",
                "X-SaferPage-Signature": "sha256=<HMAC ueber canonical_webhook_body>"
            },
            "webhook_payload": {
                "event": "operator.remediation.ticket_ready",
                "domain": "appshop.gira.de",
                "scan_id": "1025dbf6-260d-4ec2-a8ed-ebf88afbf2bb",
                "ticket_id": "mapping_cookie_session",
                "priority": "mittel",
                "severity": "warning",
                "owner": "Marketing/IT/Datenschutz",
                "sla": "30 Tage",
                "title": "session",
                "evidence": "appshop.gira.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/appshop.gira.de",
                    "rescan": "https://saferpage.de/scanbetrieb/appshop.gira.de",
                    "report": "https://saferpage.de/appshop.gira.de",
                    "fix_guides": "https://saferpage.de/fix-guides/appshop.gira.de"
                }
            },
            "canonical_webhook_body": "{\"event\":\"operator.remediation.ticket_ready\",\"domain\":\"appshop.gira.de\",\"scan_id\":\"1025dbf6-260d-4ec2-a8ed-ebf88afbf2bb\",\"ticket_id\":\"mapping_cookie_session\",\"priority\":\"mittel\",\"severity\":\"warning\",\"owner\":\"Marketing/IT/Datenschutz\",\"sla\":\"30 Tage\",\"title\":\"session\",\"evidence\":\"appshop.gira.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/appshop.gira.de\",\"rescan\":\"https://saferpage.de/scanbetrieb/appshop.gira.de\",\"report\":\"https://saferpage.de/appshop.gira.de\",\"fix_guides\":\"https://saferpage.de/fix-guides/appshop.gira.de\"}}",
            "canonical_body_sha256": "26ab56d036c88faa684b6f4c2d80529eaab7a27ae35b05443cd845a78f2e98fe",
            "slack_payload": {
                "text": "[MITTEL] appshop.gira.de: session",
                "blocks": [
                    {
                        "type": "section",
                        "text": {
                            "type": "mrkdwn",
                            "text": "*session*\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/appshop.gira.de"
                            }
                        ]
                    }
                ]
            },
            "teams_payload": {
                "type": "message",
                "summary": "[MITTEL] appshop.gira.de: session",
                "attachments": [
                    {
                        "contentType": "application/vnd.microsoft.card.adaptive",
                        "content": {
                            "type": "AdaptiveCard",
                            "version": "1.4",
                            "body": [
                                {
                                    "type": "TextBlock",
                                    "weight": "Bolder",
                                    "text": "session"
                                },
                                {
                                    "type": "TextBlock",
                                    "wrap": true,
                                    "text": "Zweck, Laufzeit, Anbieter und Consent-Erfordernis in Cookie-Erklärung und CMP pflegen."
                                },
                                {
                                    "type": "FactSet",
                                    "facts": [
                                        {
                                            "title": "Domain",
                                            "value": "appshop.gira.de"
                                        },
                                        {
                                            "title": "Verantwortlich",
                                            "value": "Marketing/IT/Datenschutz"
                                        },
                                        {
                                            "title": "Zielzeit",
                                            "value": "30 Tage"
                                        }
                                    ]
                                }
                            ]
                        }
                    }
                ]
            },
            "jira_payload": {
                "fields": {
                    "summary": "[appshop.gira.de] session",
                    "description": "Zweck, Laufzeit, Anbieter und Consent-Erfordernis in Cookie-Erklärung und CMP pflegen.\n\nNachweis: https://saferpage.de/cookies/appshop.gira.de\nHintergrundseite: https://saferpage.de/guides/cookie-laufzeiten-und-zwecke-pruefen\nRe-Scan: https://saferpage.de/scanbetrieb/appshop.gira.de",
                    "labels": [
                        "saferpage",
                        "privacyops",
                        "remediation",
                        "mittel"
                    ],
                    "priority": {
                        "name": "Medium"
                    }
                }
            }
        },
        {
            "id": "sp-fix-e9196f9776e0aaf842126202",
            "ticket_id": "remediation_image_alt_missing",
            "channel": "jira_webhook",
            "priority": "niedrig",
            "severity": "info",
            "owner": "Website-Betrieb/Datenschutz",
            "sla": "quartalsweise",
            "summary": "[appshop.gira.de] Bilder ohne Alternativtext",
            "description": "Inhaltliche Bilder mit alt-Text versehen; dekorative Bilder mit leerem alt oder aria-hidden kennzeichnen.",
            "idempotency_key": "sp-fix-e9196f9776e0aaf842126202",
            "headers": {
                "X-SaferPage-Event": "operator.remediation.ticket_ready",
                "X-SaferPage-Schema": "operator-remediation-ticket-delivery.v1",
                "X-SaferPage-Idempotency-Key": "sp-fix-e9196f9776e0aaf842126202",
                "X-SaferPage-Body-SHA256": "4aa505377d80fe8342c4bf06f3e11acd857259814306e2b4f59a4d1f6c8f2bcb",
                "X-SaferPage-Signature": "sha256=<HMAC ueber canonical_webhook_body>"
            },
            "webhook_payload": {
                "event": "operator.remediation.ticket_ready",
                "domain": "appshop.gira.de",
                "scan_id": "1025dbf6-260d-4ec2-a8ed-ebf88afbf2bb",
                "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/appshop.gira.de",
                    "rescan": "https://saferpage.de/scanbetrieb/appshop.gira.de",
                    "report": "https://saferpage.de/appshop.gira.de",
                    "fix_guides": "https://saferpage.de/fix-guides/appshop.gira.de"
                }
            },
            "canonical_webhook_body": "{\"event\":\"operator.remediation.ticket_ready\",\"domain\":\"appshop.gira.de\",\"scan_id\":\"1025dbf6-260d-4ec2-a8ed-ebf88afbf2bb\",\"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/appshop.gira.de\",\"rescan\":\"https://saferpage.de/scanbetrieb/appshop.gira.de\",\"report\":\"https://saferpage.de/appshop.gira.de\",\"fix_guides\":\"https://saferpage.de/fix-guides/appshop.gira.de\"}}",
            "canonical_body_sha256": "4aa505377d80fe8342c4bf06f3e11acd857259814306e2b4f59a4d1f6c8f2bcb",
            "slack_payload": {
                "text": "[NIEDRIG] appshop.gira.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/appshop.gira.de"
                            }
                        ]
                    }
                ]
            },
            "teams_payload": {
                "type": "message",
                "summary": "[NIEDRIG] appshop.gira.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": "appshop.gira.de"
                                        },
                                        {
                                            "title": "Verantwortlich",
                                            "value": "Website-Betrieb/Datenschutz"
                                        },
                                        {
                                            "title": "Zielzeit",
                                            "value": "quartalsweise"
                                        }
                                    ]
                                }
                            ]
                        }
                    }
                ]
            },
            "jira_payload": {
                "fields": {
                    "summary": "[appshop.gira.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/appshop.gira.de\nHintergrundseite: https://saferpage.de/guides/barrierefreiheit-cookie-banner-formulare\nRe-Scan: https://saferpage.de/scanbetrieb/appshop.gira.de",
                    "labels": [
                        "saferpage",
                        "privacyops",
                        "remediation",
                        "niedrig"
                    ],
                    "priority": {
                        "name": "Low"
                    }
                }
            }
        },
        {
            "id": "sp-fix-1650c593bd0ac30afe85f430",
            "ticket_id": "remediation_cookie_missing_samesite",
            "channel": "jira_webhook",
            "priority": "niedrig",
            "severity": "info",
            "owner": "Website-Betrieb/Datenschutz",
            "sla": "quartalsweise",
            "summary": "[appshop.gira.de] Cookie ohne SameSite-Attribut",
            "description": "SameSite=Lax oder SameSite=Strict setzen, falls fachlich möglich.",
            "idempotency_key": "sp-fix-1650c593bd0ac30afe85f430",
            "headers": {
                "X-SaferPage-Event": "operator.remediation.ticket_ready",
                "X-SaferPage-Schema": "operator-remediation-ticket-delivery.v1",
                "X-SaferPage-Idempotency-Key": "sp-fix-1650c593bd0ac30afe85f430",
                "X-SaferPage-Body-SHA256": "6ac846ed042832d2a01a28b7e35e8273e0ec62243f14a9a4e553ff67d011b6a3",
                "X-SaferPage-Signature": "sha256=<HMAC ueber canonical_webhook_body>"
            },
            "webhook_payload": {
                "event": "operator.remediation.ticket_ready",
                "domain": "appshop.gira.de",
                "scan_id": "1025dbf6-260d-4ec2-a8ed-ebf88afbf2bb",
                "ticket_id": "remediation_cookie_missing_samesite",
                "priority": "niedrig",
                "severity": "info",
                "owner": "Website-Betrieb/Datenschutz",
                "sla": "quartalsweise",
                "title": "Cookie ohne SameSite-Attribut",
                "evidence": "",
                "action": "SameSite=Lax oder SameSite=Strict setzen, falls fachlich möglich.",
                "acceptance_criteria": [
                    "Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.",
                    "Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.",
                    "Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe."
                ],
                "links": {
                    "guide": "https://saferpage.de/guides/cookies-sicher-konfigurieren",
                    "evidence": "https://saferpage.de/befunde/appshop.gira.de",
                    "rescan": "https://saferpage.de/scanbetrieb/appshop.gira.de",
                    "report": "https://saferpage.de/appshop.gira.de",
                    "fix_guides": "https://saferpage.de/fix-guides/appshop.gira.de"
                }
            },
            "canonical_webhook_body": "{\"event\":\"operator.remediation.ticket_ready\",\"domain\":\"appshop.gira.de\",\"scan_id\":\"1025dbf6-260d-4ec2-a8ed-ebf88afbf2bb\",\"ticket_id\":\"remediation_cookie_missing_samesite\",\"priority\":\"niedrig\",\"severity\":\"info\",\"owner\":\"Website-Betrieb/Datenschutz\",\"sla\":\"quartalsweise\",\"title\":\"Cookie ohne SameSite-Attribut\",\"evidence\":\"\",\"action\":\"SameSite=Lax oder SameSite=Strict setzen, falls fachlich möglich.\",\"acceptance_criteria\":[\"Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.\",\"Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.\",\"Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe.\"],\"links\":{\"guide\":\"https://saferpage.de/guides/cookies-sicher-konfigurieren\",\"evidence\":\"https://saferpage.de/befunde/appshop.gira.de\",\"rescan\":\"https://saferpage.de/scanbetrieb/appshop.gira.de\",\"report\":\"https://saferpage.de/appshop.gira.de\",\"fix_guides\":\"https://saferpage.de/fix-guides/appshop.gira.de\"}}",
            "canonical_body_sha256": "6ac846ed042832d2a01a28b7e35e8273e0ec62243f14a9a4e553ff67d011b6a3",
            "slack_payload": {
                "text": "[NIEDRIG] appshop.gira.de: Cookie ohne SameSite-Attribut",
                "blocks": [
                    {
                        "type": "section",
                        "text": {
                            "type": "mrkdwn",
                            "text": "*Cookie ohne SameSite-Attribut*\nSameSite=Lax oder SameSite=Strict setzen, falls fachlich möglich."
                        }
                    },
                    {
                        "type": "context",
                        "elements": [
                            {
                                "type": "mrkdwn",
                                "text": "Verantwortlich: Website-Betrieb/Datenschutz · Zielzeit: quartalsweise · https://saferpage.de/befunde/appshop.gira.de"
                            }
                        ]
                    }
                ]
            },
            "teams_payload": {
                "type": "message",
                "summary": "[NIEDRIG] appshop.gira.de: Cookie ohne SameSite-Attribut",
                "attachments": [
                    {
                        "contentType": "application/vnd.microsoft.card.adaptive",
                        "content": {
                            "type": "AdaptiveCard",
                            "version": "1.4",
                            "body": [
                                {
                                    "type": "TextBlock",
                                    "weight": "Bolder",
                                    "text": "Cookie ohne SameSite-Attribut"
                                },
                                {
                                    "type": "TextBlock",
                                    "wrap": true,
                                    "text": "SameSite=Lax oder SameSite=Strict setzen, falls fachlich möglich."
                                },
                                {
                                    "type": "FactSet",
                                    "facts": [
                                        {
                                            "title": "Domain",
                                            "value": "appshop.gira.de"
                                        },
                                        {
                                            "title": "Verantwortlich",
                                            "value": "Website-Betrieb/Datenschutz"
                                        },
                                        {
                                            "title": "Zielzeit",
                                            "value": "quartalsweise"
                                        }
                                    ]
                                }
                            ]
                        }
                    }
                ]
            },
            "jira_payload": {
                "fields": {
                    "summary": "[appshop.gira.de] Cookie ohne SameSite-Attribut",
                    "description": "SameSite=Lax oder SameSite=Strict setzen, falls fachlich möglich.\n\nNachweis: https://saferpage.de/befunde/appshop.gira.de\nHintergrundseite: https://saferpage.de/guides/cookies-sicher-konfigurieren\nRe-Scan: https://saferpage.de/scanbetrieb/appshop.gira.de",
                    "labels": [
                        "saferpage",
                        "privacyops",
                        "remediation",
                        "niedrig"
                    ],
                    "priority": {
                        "name": "Low"
                    }
                }
            }
        },
        {
            "id": "sp-fix-d092ce53adc40b9ee9bc8bac",
            "ticket_id": "remediation_missing_cross_origin_embedder_policy",
            "channel": "jira_webhook",
            "priority": "niedrig",
            "severity": "info",
            "owner": "Website-Betrieb/Datenschutz",
            "sla": "quartalsweise",
            "summary": "[appshop.gira.de] Cross-Origin-Embedder-Policy fehlt",
            "description": "Header `cross-origin-embedder-policy` setzen und nach Deployment erneut prüfen.",
            "idempotency_key": "sp-fix-d092ce53adc40b9ee9bc8bac",
            "headers": {
                "X-SaferPage-Event": "operator.remediation.ticket_ready",
                "X-SaferPage-Schema": "operator-remediation-ticket-delivery.v1",
                "X-SaferPage-Idempotency-Key": "sp-fix-d092ce53adc40b9ee9bc8bac",
                "X-SaferPage-Body-SHA256": "60c0ce065bee219baa6893212da69ba71a33bb89d0be598a670ed9f657dadc31",
                "X-SaferPage-Signature": "sha256=<HMAC ueber canonical_webhook_body>"
            },
            "webhook_payload": {
                "event": "operator.remediation.ticket_ready",
                "domain": "appshop.gira.de",
                "scan_id": "1025dbf6-260d-4ec2-a8ed-ebf88afbf2bb",
                "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/appshop.gira.de",
                    "rescan": "https://saferpage.de/scanbetrieb/appshop.gira.de",
                    "report": "https://saferpage.de/appshop.gira.de",
                    "fix_guides": "https://saferpage.de/fix-guides/appshop.gira.de"
                }
            },
            "canonical_webhook_body": "{\"event\":\"operator.remediation.ticket_ready\",\"domain\":\"appshop.gira.de\",\"scan_id\":\"1025dbf6-260d-4ec2-a8ed-ebf88afbf2bb\",\"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/appshop.gira.de\",\"rescan\":\"https://saferpage.de/scanbetrieb/appshop.gira.de\",\"report\":\"https://saferpage.de/appshop.gira.de\",\"fix_guides\":\"https://saferpage.de/fix-guides/appshop.gira.de\"}}",
            "canonical_body_sha256": "60c0ce065bee219baa6893212da69ba71a33bb89d0be598a670ed9f657dadc31",
            "slack_payload": {
                "text": "[NIEDRIG] appshop.gira.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/appshop.gira.de"
                            }
                        ]
                    }
                ]
            },
            "teams_payload": {
                "type": "message",
                "summary": "[NIEDRIG] appshop.gira.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": "appshop.gira.de"
                                        },
                                        {
                                            "title": "Verantwortlich",
                                            "value": "Website-Betrieb/Datenschutz"
                                        },
                                        {
                                            "title": "Zielzeit",
                                            "value": "quartalsweise"
                                        }
                                    ]
                                }
                            ]
                        }
                    }
                ]
            },
            "jira_payload": {
                "fields": {
                    "summary": "[appshop.gira.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/appshop.gira.de\nHintergrundseite: https://saferpage.de/guides/security-header-setzen\nRe-Scan: https://saferpage.de/scanbetrieb/appshop.gira.de",
                    "labels": [
                        "saferpage",
                        "privacyops",
                        "remediation",
                        "niedrig"
                    ],
                    "priority": {
                        "name": "Low"
                    }
                }
            }
        },
        {
            "id": "sp-fix-921a36019b41628f749d11ec",
            "ticket_id": "remediation_missing_cross_origin_opener_policy",
            "channel": "jira_webhook",
            "priority": "niedrig",
            "severity": "info",
            "owner": "Website-Betrieb/Datenschutz",
            "sla": "quartalsweise",
            "summary": "[appshop.gira.de] Cross-Origin-Opener-Policy fehlt",
            "description": "Header `cross-origin-opener-policy` setzen und nach Deployment erneut prüfen.",
            "idempotency_key": "sp-fix-921a36019b41628f749d11ec",
            "headers": {
                "X-SaferPage-Event": "operator.remediation.ticket_ready",
                "X-SaferPage-Schema": "operator-remediation-ticket-delivery.v1",
                "X-SaferPage-Idempotency-Key": "sp-fix-921a36019b41628f749d11ec",
                "X-SaferPage-Body-SHA256": "92f60169bcc9cb15317452c8bd1f05137937abfda0b03e2803c7747f4b6180ce",
                "X-SaferPage-Signature": "sha256=<HMAC ueber canonical_webhook_body>"
            },
            "webhook_payload": {
                "event": "operator.remediation.ticket_ready",
                "domain": "appshop.gira.de",
                "scan_id": "1025dbf6-260d-4ec2-a8ed-ebf88afbf2bb",
                "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/appshop.gira.de",
                    "rescan": "https://saferpage.de/scanbetrieb/appshop.gira.de",
                    "report": "https://saferpage.de/appshop.gira.de",
                    "fix_guides": "https://saferpage.de/fix-guides/appshop.gira.de"
                }
            },
            "canonical_webhook_body": "{\"event\":\"operator.remediation.ticket_ready\",\"domain\":\"appshop.gira.de\",\"scan_id\":\"1025dbf6-260d-4ec2-a8ed-ebf88afbf2bb\",\"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/appshop.gira.de\",\"rescan\":\"https://saferpage.de/scanbetrieb/appshop.gira.de\",\"report\":\"https://saferpage.de/appshop.gira.de\",\"fix_guides\":\"https://saferpage.de/fix-guides/appshop.gira.de\"}}",
            "canonical_body_sha256": "92f60169bcc9cb15317452c8bd1f05137937abfda0b03e2803c7747f4b6180ce",
            "slack_payload": {
                "text": "[NIEDRIG] appshop.gira.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/appshop.gira.de"
                            }
                        ]
                    }
                ]
            },
            "teams_payload": {
                "type": "message",
                "summary": "[NIEDRIG] appshop.gira.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": "appshop.gira.de"
                                        },
                                        {
                                            "title": "Verantwortlich",
                                            "value": "Website-Betrieb/Datenschutz"
                                        },
                                        {
                                            "title": "Zielzeit",
                                            "value": "quartalsweise"
                                        }
                                    ]
                                }
                            ]
                        }
                    }
                ]
            },
            "jira_payload": {
                "fields": {
                    "summary": "[appshop.gira.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/appshop.gira.de\nHintergrundseite: https://saferpage.de/guides/security-header-setzen\nRe-Scan: https://saferpage.de/scanbetrieb/appshop.gira.de",
                    "labels": [
                        "saferpage",
                        "privacyops",
                        "remediation",
                        "niedrig"
                    ],
                    "priority": {
                        "name": "Low"
                    }
                }
            }
        },
        {
            "id": "sp-fix-62a8fd3c9096d54dba6721ab",
            "ticket_id": "remediation_missing_cross_origin_resource_policy",
            "channel": "jira_webhook",
            "priority": "niedrig",
            "severity": "info",
            "owner": "Website-Betrieb/Datenschutz",
            "sla": "quartalsweise",
            "summary": "[appshop.gira.de] Cross-Origin-Resource-Policy fehlt",
            "description": "Header `cross-origin-resource-policy` setzen und nach Deployment erneut prüfen.",
            "idempotency_key": "sp-fix-62a8fd3c9096d54dba6721ab",
            "headers": {
                "X-SaferPage-Event": "operator.remediation.ticket_ready",
                "X-SaferPage-Schema": "operator-remediation-ticket-delivery.v1",
                "X-SaferPage-Idempotency-Key": "sp-fix-62a8fd3c9096d54dba6721ab",
                "X-SaferPage-Body-SHA256": "ac4933f15bfbab09d7677ba88f1d97a7163f00f3216400eeae5ce1b48961fbcf",
                "X-SaferPage-Signature": "sha256=<HMAC ueber canonical_webhook_body>"
            },
            "webhook_payload": {
                "event": "operator.remediation.ticket_ready",
                "domain": "appshop.gira.de",
                "scan_id": "1025dbf6-260d-4ec2-a8ed-ebf88afbf2bb",
                "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/appshop.gira.de",
                    "rescan": "https://saferpage.de/scanbetrieb/appshop.gira.de",
                    "report": "https://saferpage.de/appshop.gira.de",
                    "fix_guides": "https://saferpage.de/fix-guides/appshop.gira.de"
                }
            },
            "canonical_webhook_body": "{\"event\":\"operator.remediation.ticket_ready\",\"domain\":\"appshop.gira.de\",\"scan_id\":\"1025dbf6-260d-4ec2-a8ed-ebf88afbf2bb\",\"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/appshop.gira.de\",\"rescan\":\"https://saferpage.de/scanbetrieb/appshop.gira.de\",\"report\":\"https://saferpage.de/appshop.gira.de\",\"fix_guides\":\"https://saferpage.de/fix-guides/appshop.gira.de\"}}",
            "canonical_body_sha256": "ac4933f15bfbab09d7677ba88f1d97a7163f00f3216400eeae5ce1b48961fbcf",
            "slack_payload": {
                "text": "[NIEDRIG] appshop.gira.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/appshop.gira.de"
                            }
                        ]
                    }
                ]
            },
            "teams_payload": {
                "type": "message",
                "summary": "[NIEDRIG] appshop.gira.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": "appshop.gira.de"
                                        },
                                        {
                                            "title": "Verantwortlich",
                                            "value": "Website-Betrieb/Datenschutz"
                                        },
                                        {
                                            "title": "Zielzeit",
                                            "value": "quartalsweise"
                                        }
                                    ]
                                }
                            ]
                        }
                    }
                ]
            },
            "jira_payload": {
                "fields": {
                    "summary": "[appshop.gira.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/appshop.gira.de\nHintergrundseite: https://saferpage.de/guides/security-header-setzen\nRe-Scan: https://saferpage.de/scanbetrieb/appshop.gira.de",
                    "labels": [
                        "saferpage",
                        "privacyops",
                        "remediation",
                        "niedrig"
                    ],
                    "priority": {
                        "name": "Low"
                    }
                }
            }
        },
        {
            "id": "sp-fix-525f384a81222a34bea96931",
            "ticket_id": "remediation_external_script_without_sri",
            "channel": "jira_webhook",
            "priority": "niedrig",
            "severity": "info",
            "owner": "Website-Betrieb/Datenschutz",
            "sla": "quartalsweise",
            "summary": "[appshop.gira.de] Externe Skripte ohne Subresource Integrity",
            "description": "Für statische CDN-Skripte `integrity` und passend `crossorigin` setzen oder Skripte kontrolliert lokal ausliefern.",
            "idempotency_key": "sp-fix-525f384a81222a34bea96931",
            "headers": {
                "X-SaferPage-Event": "operator.remediation.ticket_ready",
                "X-SaferPage-Schema": "operator-remediation-ticket-delivery.v1",
                "X-SaferPage-Idempotency-Key": "sp-fix-525f384a81222a34bea96931",
                "X-SaferPage-Body-SHA256": "61243d14305391665172cdb045c9f5141d98ab40cf20494f066ef959bb7b9ff5",
                "X-SaferPage-Signature": "sha256=<HMAC ueber canonical_webhook_body>"
            },
            "webhook_payload": {
                "event": "operator.remediation.ticket_ready",
                "domain": "appshop.gira.de",
                "scan_id": "1025dbf6-260d-4ec2-a8ed-ebf88afbf2bb",
                "ticket_id": "remediation_external_script_without_sri",
                "priority": "niedrig",
                "severity": "info",
                "owner": "Website-Betrieb/Datenschutz",
                "sla": "quartalsweise",
                "title": "Externe Skripte ohne Subresource Integrity",
                "evidence": "",
                "action": "Für statische CDN-Skripte `integrity` und passend `crossorigin` setzen oder Skripte kontrolliert lokal ausliefern.",
                "acceptance_criteria": [
                    "Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.",
                    "Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.",
                    "Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe."
                ],
                "links": {
                    "guide": "https://saferpage.de/guides/externe-skripte-und-sri-absichern",
                    "evidence": "https://saferpage.de/befunde/appshop.gira.de",
                    "rescan": "https://saferpage.de/scanbetrieb/appshop.gira.de",
                    "report": "https://saferpage.de/appshop.gira.de",
                    "fix_guides": "https://saferpage.de/fix-guides/appshop.gira.de"
                }
            },
            "canonical_webhook_body": "{\"event\":\"operator.remediation.ticket_ready\",\"domain\":\"appshop.gira.de\",\"scan_id\":\"1025dbf6-260d-4ec2-a8ed-ebf88afbf2bb\",\"ticket_id\":\"remediation_external_script_without_sri\",\"priority\":\"niedrig\",\"severity\":\"info\",\"owner\":\"Website-Betrieb/Datenschutz\",\"sla\":\"quartalsweise\",\"title\":\"Externe Skripte ohne Subresource Integrity\",\"evidence\":\"\",\"action\":\"Für statische CDN-Skripte `integrity` und passend `crossorigin` setzen oder Skripte kontrolliert lokal ausliefern.\",\"acceptance_criteria\":[\"Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.\",\"Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.\",\"Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe.\"],\"links\":{\"guide\":\"https://saferpage.de/guides/externe-skripte-und-sri-absichern\",\"evidence\":\"https://saferpage.de/befunde/appshop.gira.de\",\"rescan\":\"https://saferpage.de/scanbetrieb/appshop.gira.de\",\"report\":\"https://saferpage.de/appshop.gira.de\",\"fix_guides\":\"https://saferpage.de/fix-guides/appshop.gira.de\"}}",
            "canonical_body_sha256": "61243d14305391665172cdb045c9f5141d98ab40cf20494f066ef959bb7b9ff5",
            "slack_payload": {
                "text": "[NIEDRIG] appshop.gira.de: Externe Skripte ohne Subresource Integrity",
                "blocks": [
                    {
                        "type": "section",
                        "text": {
                            "type": "mrkdwn",
                            "text": "*Externe Skripte ohne Subresource Integrity*\nFür statische CDN-Skripte `integrity` und passend `crossorigin` setzen oder Skripte kontrolliert lokal ausliefern."
                        }
                    },
                    {
                        "type": "context",
                        "elements": [
                            {
                                "type": "mrkdwn",
                                "text": "Verantwortlich: Website-Betrieb/Datenschutz · Zielzeit: quartalsweise · https://saferpage.de/befunde/appshop.gira.de"
                            }
                        ]
                    }
                ]
            },
            "teams_payload": {
                "type": "message",
                "summary": "[NIEDRIG] appshop.gira.de: Externe Skripte ohne Subresource Integrity",
                "attachments": [
                    {
                        "contentType": "application/vnd.microsoft.card.adaptive",
                        "content": {
                            "type": "AdaptiveCard",
                            "version": "1.4",
                            "body": [
                                {
                                    "type": "TextBlock",
                                    "weight": "Bolder",
                                    "text": "Externe Skripte ohne Subresource Integrity"
                                },
                                {
                                    "type": "TextBlock",
                                    "wrap": true,
                                    "text": "Für statische CDN-Skripte `integrity` und passend `crossorigin` setzen oder Skripte kontrolliert lokal ausliefern."
                                },
                                {
                                    "type": "FactSet",
                                    "facts": [
                                        {
                                            "title": "Domain",
                                            "value": "appshop.gira.de"
                                        },
                                        {
                                            "title": "Verantwortlich",
                                            "value": "Website-Betrieb/Datenschutz"
                                        },
                                        {
                                            "title": "Zielzeit",
                                            "value": "quartalsweise"
                                        }
                                    ]
                                }
                            ]
                        }
                    }
                ]
            },
            "jira_payload": {
                "fields": {
                    "summary": "[appshop.gira.de] Externe Skripte ohne Subresource Integrity",
                    "description": "Für statische CDN-Skripte `integrity` und passend `crossorigin` setzen oder Skripte kontrolliert lokal ausliefern.\n\nNachweis: https://saferpage.de/befunde/appshop.gira.de\nHintergrundseite: https://saferpage.de/guides/externe-skripte-und-sri-absichern\nRe-Scan: https://saferpage.de/scanbetrieb/appshop.gira.de",
                    "labels": [
                        "saferpage",
                        "privacyops",
                        "remediation",
                        "niedrig"
                    ],
                    "priority": {
                        "name": "Low"
                    }
                }
            }
        },
        {
            "id": "sp-fix-1ded5d4d8b7630cdde26e577",
            "ticket_id": "remediation_browser_consent_settings_missing",
            "channel": "jira_webhook",
            "priority": "niedrig",
            "severity": "info",
            "owner": "Website-Betrieb/Datenschutz",
            "sla": "quartalsweise",
            "summary": "[appshop.gira.de] Keine sichtbaren Cookie-Einstellungen im Banner",
            "description": "Eine klare Auswahl- oder Einstellungsebene für Zwecke und Anbieter anbieten.",
            "idempotency_key": "sp-fix-1ded5d4d8b7630cdde26e577",
            "headers": {
                "X-SaferPage-Event": "operator.remediation.ticket_ready",
                "X-SaferPage-Schema": "operator-remediation-ticket-delivery.v1",
                "X-SaferPage-Idempotency-Key": "sp-fix-1ded5d4d8b7630cdde26e577",
                "X-SaferPage-Body-SHA256": "9ddbbd5e581e846cb3116bc73449d22391205790f46cd41d76f813bab461961f",
                "X-SaferPage-Signature": "sha256=<HMAC ueber canonical_webhook_body>"
            },
            "webhook_payload": {
                "event": "operator.remediation.ticket_ready",
                "domain": "appshop.gira.de",
                "scan_id": "1025dbf6-260d-4ec2-a8ed-ebf88afbf2bb",
                "ticket_id": "remediation_browser_consent_settings_missing",
                "priority": "niedrig",
                "severity": "info",
                "owner": "Website-Betrieb/Datenschutz",
                "sla": "quartalsweise",
                "title": "Keine sichtbaren Cookie-Einstellungen im Banner",
                "evidence": "",
                "action": "Eine klare Auswahl- oder Einstellungsebene für Zwecke und Anbieter anbieten.",
                "acceptance_criteria": [
                    "Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.",
                    "Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.",
                    "Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe."
                ],
                "links": {
                    "guide": "https://saferpage.de/guides/tracking-und-consent-reparieren",
                    "evidence": "https://saferpage.de/befunde/appshop.gira.de",
                    "rescan": "https://saferpage.de/scanbetrieb/appshop.gira.de",
                    "report": "https://saferpage.de/appshop.gira.de",
                    "fix_guides": "https://saferpage.de/fix-guides/appshop.gira.de"
                }
            },
            "canonical_webhook_body": "{\"event\":\"operator.remediation.ticket_ready\",\"domain\":\"appshop.gira.de\",\"scan_id\":\"1025dbf6-260d-4ec2-a8ed-ebf88afbf2bb\",\"ticket_id\":\"remediation_browser_consent_settings_missing\",\"priority\":\"niedrig\",\"severity\":\"info\",\"owner\":\"Website-Betrieb/Datenschutz\",\"sla\":\"quartalsweise\",\"title\":\"Keine sichtbaren Cookie-Einstellungen im Banner\",\"evidence\":\"\",\"action\":\"Eine klare Auswahl- oder Einstellungsebene für Zwecke und Anbieter anbieten.\",\"acceptance_criteria\":[\"Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.\",\"Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.\",\"Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe.\"],\"links\":{\"guide\":\"https://saferpage.de/guides/tracking-und-consent-reparieren\",\"evidence\":\"https://saferpage.de/befunde/appshop.gira.de\",\"rescan\":\"https://saferpage.de/scanbetrieb/appshop.gira.de\",\"report\":\"https://saferpage.de/appshop.gira.de\",\"fix_guides\":\"https://saferpage.de/fix-guides/appshop.gira.de\"}}",
            "canonical_body_sha256": "9ddbbd5e581e846cb3116bc73449d22391205790f46cd41d76f813bab461961f",
            "slack_payload": {
                "text": "[NIEDRIG] appshop.gira.de: Keine sichtbaren Cookie-Einstellungen im Banner",
                "blocks": [
                    {
                        "type": "section",
                        "text": {
                            "type": "mrkdwn",
                            "text": "*Keine sichtbaren Cookie-Einstellungen im Banner*\nEine klare Auswahl- oder Einstellungsebene für Zwecke und Anbieter anbieten."
                        }
                    },
                    {
                        "type": "context",
                        "elements": [
                            {
                                "type": "mrkdwn",
                                "text": "Verantwortlich: Website-Betrieb/Datenschutz · Zielzeit: quartalsweise · https://saferpage.de/befunde/appshop.gira.de"
                            }
                        ]
                    }
                ]
            },
            "teams_payload": {
                "type": "message",
                "summary": "[NIEDRIG] appshop.gira.de: Keine sichtbaren Cookie-Einstellungen im Banner",
                "attachments": [
                    {
                        "contentType": "application/vnd.microsoft.card.adaptive",
                        "content": {
                            "type": "AdaptiveCard",
                            "version": "1.4",
                            "body": [
                                {
                                    "type": "TextBlock",
                                    "weight": "Bolder",
                                    "text": "Keine sichtbaren Cookie-Einstellungen im Banner"
                                },
                                {
                                    "type": "TextBlock",
                                    "wrap": true,
                                    "text": "Eine klare Auswahl- oder Einstellungsebene für Zwecke und Anbieter anbieten."
                                },
                                {
                                    "type": "FactSet",
                                    "facts": [
                                        {
                                            "title": "Domain",
                                            "value": "appshop.gira.de"
                                        },
                                        {
                                            "title": "Verantwortlich",
                                            "value": "Website-Betrieb/Datenschutz"
                                        },
                                        {
                                            "title": "Zielzeit",
                                            "value": "quartalsweise"
                                        }
                                    ]
                                }
                            ]
                        }
                    }
                ]
            },
            "jira_payload": {
                "fields": {
                    "summary": "[appshop.gira.de] Keine sichtbaren Cookie-Einstellungen im Banner",
                    "description": "Eine klare Auswahl- oder Einstellungsebene für Zwecke und Anbieter anbieten.\n\nNachweis: https://saferpage.de/befunde/appshop.gira.de\nHintergrundseite: https://saferpage.de/guides/tracking-und-consent-reparieren\nRe-Scan: https://saferpage.de/scanbetrieb/appshop.gira.de",
                    "labels": [
                        "saferpage",
                        "privacyops",
                        "remediation",
                        "niedrig"
                    ],
                    "priority": {
                        "name": "Low"
                    }
                }
            }
        },
        {
            "id": "sp-fix-b3f123dfdf9e6c00aa2b3585",
            "ticket_id": "remediation_missing_permissions_policy",
            "channel": "jira_webhook",
            "priority": "niedrig",
            "severity": "info",
            "owner": "Website-Betrieb/Datenschutz",
            "sla": "quartalsweise",
            "summary": "[appshop.gira.de] Permissions-Policy fehlt",
            "description": "Header `permissions-policy` setzen und nach Deployment erneut prüfen.",
            "idempotency_key": "sp-fix-b3f123dfdf9e6c00aa2b3585",
            "headers": {
                "X-SaferPage-Event": "operator.remediation.ticket_ready",
                "X-SaferPage-Schema": "operator-remediation-ticket-delivery.v1",
                "X-SaferPage-Idempotency-Key": "sp-fix-b3f123dfdf9e6c00aa2b3585",
                "X-SaferPage-Body-SHA256": "aae6e26577502cb578e22231f23df66103be7bccf5a604bac69ec9700ea28b9f",
                "X-SaferPage-Signature": "sha256=<HMAC ueber canonical_webhook_body>"
            },
            "webhook_payload": {
                "event": "operator.remediation.ticket_ready",
                "domain": "appshop.gira.de",
                "scan_id": "1025dbf6-260d-4ec2-a8ed-ebf88afbf2bb",
                "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/appshop.gira.de",
                    "rescan": "https://saferpage.de/scanbetrieb/appshop.gira.de",
                    "report": "https://saferpage.de/appshop.gira.de",
                    "fix_guides": "https://saferpage.de/fix-guides/appshop.gira.de"
                }
            },
            "canonical_webhook_body": "{\"event\":\"operator.remediation.ticket_ready\",\"domain\":\"appshop.gira.de\",\"scan_id\":\"1025dbf6-260d-4ec2-a8ed-ebf88afbf2bb\",\"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/appshop.gira.de\",\"rescan\":\"https://saferpage.de/scanbetrieb/appshop.gira.de\",\"report\":\"https://saferpage.de/appshop.gira.de\",\"fix_guides\":\"https://saferpage.de/fix-guides/appshop.gira.de\"}}",
            "canonical_body_sha256": "aae6e26577502cb578e22231f23df66103be7bccf5a604bac69ec9700ea28b9f",
            "slack_payload": {
                "text": "[NIEDRIG] appshop.gira.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/appshop.gira.de"
                            }
                        ]
                    }
                ]
            },
            "teams_payload": {
                "type": "message",
                "summary": "[NIEDRIG] appshop.gira.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": "appshop.gira.de"
                                        },
                                        {
                                            "title": "Verantwortlich",
                                            "value": "Website-Betrieb/Datenschutz"
                                        },
                                        {
                                            "title": "Zielzeit",
                                            "value": "quartalsweise"
                                        }
                                    ]
                                }
                            ]
                        }
                    }
                ]
            },
            "jira_payload": {
                "fields": {
                    "summary": "[appshop.gira.de] Permissions-Policy fehlt",
                    "description": "Header `permissions-policy` setzen und nach Deployment erneut prüfen.\n\nNachweis: https://saferpage.de/befunde/appshop.gira.de\nHintergrundseite: https://saferpage.de/guides/security-header-setzen\nRe-Scan: https://saferpage.de/scanbetrieb/appshop.gira.de",
                    "labels": [
                        "saferpage",
                        "privacyops",
                        "remediation",
                        "niedrig"
                    ],
                    "priority": {
                        "name": "Low"
                    }
                }
            }
        },
        {
            "id": "sp-fix-5f025e55f9666a26cff0a8c7",
            "ticket_id": "remediation_missing_referrer_policy",
            "channel": "jira_webhook",
            "priority": "niedrig",
            "severity": "info",
            "owner": "Website-Betrieb/Datenschutz",
            "sla": "quartalsweise",
            "summary": "[appshop.gira.de] Referrer-Policy fehlt",
            "description": "Header `referrer-policy` setzen und nach Deployment erneut prüfen.",
            "idempotency_key": "sp-fix-5f025e55f9666a26cff0a8c7",
            "headers": {
                "X-SaferPage-Event": "operator.remediation.ticket_ready",
                "X-SaferPage-Schema": "operator-remediation-ticket-delivery.v1",
                "X-SaferPage-Idempotency-Key": "sp-fix-5f025e55f9666a26cff0a8c7",
                "X-SaferPage-Body-SHA256": "0fd6540fe466f91dbbdd55e17ee650b495a26f1c1e118a62b44f214c752344ef",
                "X-SaferPage-Signature": "sha256=<HMAC ueber canonical_webhook_body>"
            },
            "webhook_payload": {
                "event": "operator.remediation.ticket_ready",
                "domain": "appshop.gira.de",
                "scan_id": "1025dbf6-260d-4ec2-a8ed-ebf88afbf2bb",
                "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/appshop.gira.de",
                    "rescan": "https://saferpage.de/scanbetrieb/appshop.gira.de",
                    "report": "https://saferpage.de/appshop.gira.de",
                    "fix_guides": "https://saferpage.de/fix-guides/appshop.gira.de"
                }
            },
            "canonical_webhook_body": "{\"event\":\"operator.remediation.ticket_ready\",\"domain\":\"appshop.gira.de\",\"scan_id\":\"1025dbf6-260d-4ec2-a8ed-ebf88afbf2bb\",\"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/appshop.gira.de\",\"rescan\":\"https://saferpage.de/scanbetrieb/appshop.gira.de\",\"report\":\"https://saferpage.de/appshop.gira.de\",\"fix_guides\":\"https://saferpage.de/fix-guides/appshop.gira.de\"}}",
            "canonical_body_sha256": "0fd6540fe466f91dbbdd55e17ee650b495a26f1c1e118a62b44f214c752344ef",
            "slack_payload": {
                "text": "[NIEDRIG] appshop.gira.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/appshop.gira.de"
                            }
                        ]
                    }
                ]
            },
            "teams_payload": {
                "type": "message",
                "summary": "[NIEDRIG] appshop.gira.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": "appshop.gira.de"
                                        },
                                        {
                                            "title": "Verantwortlich",
                                            "value": "Website-Betrieb/Datenschutz"
                                        },
                                        {
                                            "title": "Zielzeit",
                                            "value": "quartalsweise"
                                        }
                                    ]
                                }
                            ]
                        }
                    }
                ]
            },
            "jira_payload": {
                "fields": {
                    "summary": "[appshop.gira.de] Referrer-Policy fehlt",
                    "description": "Header `referrer-policy` setzen und nach Deployment erneut prüfen.\n\nNachweis: https://saferpage.de/befunde/appshop.gira.de\nHintergrundseite: https://saferpage.de/guides/security-header-setzen\nRe-Scan: https://saferpage.de/scanbetrieb/appshop.gira.de",
                    "labels": [
                        "saferpage",
                        "privacyops",
                        "remediation",
                        "niedrig"
                    ],
                    "priority": {
                        "name": "Low"
                    }
                }
            }
        },
        {
            "id": "sp-fix-e0f772e184a365aca129e43b",
            "ticket_id": "remediation_privacy_policy_update_date_missing",
            "channel": "jira_webhook",
            "priority": "niedrig",
            "severity": "info",
            "owner": "Website-Betrieb/Datenschutz",
            "sla": "quartalsweise",
            "summary": "[appshop.gira.de] Stand der Datenschutzerklärung nicht klar erkennbar",
            "description": "Ergänzen Sie ein gut sichtbares Stand- oder Aktualisierungsdatum und prüfen Sie die Erklärung nach technischen Änderungen.",
            "idempotency_key": "sp-fix-e0f772e184a365aca129e43b",
            "headers": {
                "X-SaferPage-Event": "operator.remediation.ticket_ready",
                "X-SaferPage-Schema": "operator-remediation-ticket-delivery.v1",
                "X-SaferPage-Idempotency-Key": "sp-fix-e0f772e184a365aca129e43b",
                "X-SaferPage-Body-SHA256": "153834f00874b3c88698a583ae4b8a98896e3d61b8b42ecc2fd02b95a75eb50b",
                "X-SaferPage-Signature": "sha256=<HMAC ueber canonical_webhook_body>"
            },
            "webhook_payload": {
                "event": "operator.remediation.ticket_ready",
                "domain": "appshop.gira.de",
                "scan_id": "1025dbf6-260d-4ec2-a8ed-ebf88afbf2bb",
                "ticket_id": "remediation_privacy_policy_update_date_missing",
                "priority": "niedrig",
                "severity": "info",
                "owner": "Website-Betrieb/Datenschutz",
                "sla": "quartalsweise",
                "title": "Stand der Datenschutzerklärung nicht klar erkennbar",
                "evidence": "",
                "action": "Ergänzen Sie ein gut sichtbares Stand- oder Aktualisierungsdatum und prüfen Sie die Erklärung nach technischen Änderungen.",
                "acceptance_criteria": [
                    "Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.",
                    "Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.",
                    "Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe."
                ],
                "links": {
                    "guide": "https://saferpage.de/guides/datenschutzerklaerung-verbessern",
                    "evidence": "https://saferpage.de/befunde/appshop.gira.de",
                    "rescan": "https://saferpage.de/scanbetrieb/appshop.gira.de",
                    "report": "https://saferpage.de/appshop.gira.de",
                    "fix_guides": "https://saferpage.de/fix-guides/appshop.gira.de"
                }
            },
            "canonical_webhook_body": "{\"event\":\"operator.remediation.ticket_ready\",\"domain\":\"appshop.gira.de\",\"scan_id\":\"1025dbf6-260d-4ec2-a8ed-ebf88afbf2bb\",\"ticket_id\":\"remediation_privacy_policy_update_date_missing\",\"priority\":\"niedrig\",\"severity\":\"info\",\"owner\":\"Website-Betrieb/Datenschutz\",\"sla\":\"quartalsweise\",\"title\":\"Stand der Datenschutzerklärung nicht klar erkennbar\",\"evidence\":\"\",\"action\":\"Ergänzen Sie ein gut sichtbares Stand- oder Aktualisierungsdatum und prüfen Sie die Erklärung nach technischen Änderungen.\",\"acceptance_criteria\":[\"Der konkrete SaferPage-Befund ist im Re-Scan behoben oder nachvollziehbar herabgestuft.\",\"Datenschutzhinweis, Consent-Oberfläche und beobachtete Technik widersprechen sich nicht mehr.\",\"Exportpaket enthält Scan-ID, Zeitstempel, betroffene Tabellen und Betreiber-Freigabe.\"],\"links\":{\"guide\":\"https://saferpage.de/guides/datenschutzerklaerung-verbessern\",\"evidence\":\"https://saferpage.de/befunde/appshop.gira.de\",\"rescan\":\"https://saferpage.de/scanbetrieb/appshop.gira.de\",\"report\":\"https://saferpage.de/appshop.gira.de\",\"fix_guides\":\"https://saferpage.de/fix-guides/appshop.gira.de\"}}",
            "canonical_body_sha256": "153834f00874b3c88698a583ae4b8a98896e3d61b8b42ecc2fd02b95a75eb50b",
            "slack_payload": {
                "text": "[NIEDRIG] appshop.gira.de: Stand der Datenschutzerklärung nicht klar erkennbar",
                "blocks": [
                    {
                        "type": "section",
                        "text": {
                            "type": "mrkdwn",
                            "text": "*Stand der Datenschutzerklärung nicht klar erkennbar*\nErgänzen Sie ein gut sichtbares Stand- oder Aktualisierungsdatum und prüfen Sie die Erklärung nach technischen Änderungen."
                        }
                    },
                    {
                        "type": "context",
                        "elements": [
                            {
                                "type": "mrkdwn",
                                "text": "Verantwortlich: Website-Betrieb/Datenschutz · Zielzeit: quartalsweise · https://saferpage.de/befunde/appshop.gira.de"
                            }
                        ]
                    }
                ]
            },
            "teams_payload": {
                "type": "message",
                "summary": "[NIEDRIG] appshop.gira.de: Stand der Datenschutzerklärung nicht klar erkennbar",
                "attachments": [
                    {
                        "contentType": "application/vnd.microsoft.card.adaptive",
                        "content": {
                            "type": "AdaptiveCard",
                            "version": "1.4",
                            "body": [
                                {
                                    "type": "TextBlock",
                                    "weight": "Bolder",
                                    "text": "Stand der Datenschutzerklärung nicht klar erkennbar"
                                },
                                {
                                    "type": "TextBlock",
                                    "wrap": true,
                                    "text": "Ergänzen Sie ein gut sichtbares Stand- oder Aktualisierungsdatum und prüfen Sie die Erklärung nach technischen Änderungen."
                                },
                                {
                                    "type": "FactSet",
                                    "facts": [
                                        {
                                            "title": "Domain",
                                            "value": "appshop.gira.de"
                                        },
                                        {
                                            "title": "Verantwortlich",
                                            "value": "Website-Betrieb/Datenschutz"
                                        },
                                        {
                                            "title": "Zielzeit",
                                            "value": "quartalsweise"
                                        }
                                    ]
                                }
                            ]
                        }
                    }
                ]
            },
            "jira_payload": {
                "fields": {
                    "summary": "[appshop.gira.de] Stand der Datenschutzerklärung nicht klar erkennbar",
                    "description": "Ergänzen Sie ein gut sichtbares Stand- oder Aktualisierungsdatum und prüfen Sie die Erklärung nach technischen Änderungen.\n\nNachweis: https://saferpage.de/befunde/appshop.gira.de\nHintergrundseite: https://saferpage.de/guides/datenschutzerklaerung-verbessern\nRe-Scan: https://saferpage.de/scanbetrieb/appshop.gira.de",
                    "labels": [
                        "saferpage",
                        "privacyops",
                        "remediation",
                        "niedrig"
                    ],
                    "priority": {
                        "name": "Low"
                    }
                }
            }
        }
    ],
    "links": {
        "fix_guides": "https://saferpage.de/fix-guides/appshop.gira.de",
        "tickets_json": "https://saferpage.de/fix-guides/appshop.gira.de/tickets-json",
        "json": "https://saferpage.de/fix-guides/appshop.gira.de/tickets-delivery-json",
        "csv": "https://saferpage.de/fix-guides/appshop.gira.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."
}
