CSP frame-ancestors erlaubt anderen Websites, die Seite in einen Frame einzubetten
Worum geht es
Ihre Website sendet die Direktive frame-ancestors in einem durchgesetzten Content-Security-Policy-Header, aber sie ist so großzügig gesetzt, dass andere Websites Ihre Seiten weiterhin in einem <iframe> einbetten können. Meist steckt ein Platzhalter dahinter, etwa frame-ancestors * oder https:.
Warum X-Frame-Options hier nicht hilft
Browser, die frame-ancestors verstehen, wenden die Direktive an und lesen X-Frame-Options gar nicht. Das gilt unabhängig davon, ob Ihre Website einen X-Frame-Options-Header sendet. Ein zusätzliches X-Frame-Options: SAMEORIGIN neben dieser Direktive ändert deshalb nichts; die Direktive selbst muss enger gefasst werden.
So beheben Sie es
Ersetzen Sie den großzügigen Wert durch den engsten, mit dem Ihre Website auskommt:
Content-Security-Policy: frame-ancestors 'none';
# oder, wenn Sie eigene Seiten einbetten:
Content-Security-Policy: frame-ancestors 'self';
# oder mit einer Allowlist vertrauenswürdiger Websites:
Content-Security-Policy: frame-ancestors 'self' https://partner.example.cz;Wenn Sie auch ältere Browser ohne frame-ancestors-Unterstützung abdecken möchten, können Sie daneben weiterhin X-Frame-Options mit passendem Wert senden. Moderne Browser folgen der Direktive.
Ergebnis prüfen
Laden Sie die Seite neu und prüfen Sie die Response-Header in den Entwicklertools Ihres Browsers, oder starten Sie einen neuen Scan. Der Befund verschwindet, sobald frame-ancestors keine Websites mehr zulässt, die Sie nicht kontrollieren.