it-swarm.com.de

Externe Inhalte werden in Safari nicht in iframe geladen

Ich versuche, externen Inhalt in einen Iframe zu laden, und er funktioniert in Chrome und Firefox, aber in Safari wird er nicht geladen. In Safari erhalte ich die Fehlermeldung:

Anzeige von 'my_content' in einem Frame abgelehnt, da 'X-Frame-Optionen' auf 'sameorigin' gesetzt wurden

Ich denke, das Problem könnte sein, dass sich meine WordPress-Installation in einem Unterverzeichnis befindet:

Die Kopfzeile für meinen externen Inhalt enthält Folgendes:

 X-Frame-Options: sameorigin
 Content-Security-Policy: frame-ancestors 'self' https://example.com
 X-Content-Security-Policy: frame-ancestors 'self' https://example.com

Dieser Artikel enthält eine Reihe möglicher Gründe für das Problem mit Safari & SAMEORIGIN https://halfelf.org/2018/safari-and-sameorigin/ . Ich habe keine zusätzlichen X-Frame-Optionen in meiner .htaccess-Datei, daher frage ich mich, ob das Problem damit zusammenhängt, dass sich meine WordPress-Installation in einem Unterverzeichnis befindet. Gibt es eine Problemumgehung dafür? Oder wird das von etwas anderem verursacht?

1
megseoh

Jemand mit viel mehr Wissen über dieses Problem hat es für mich behoben. Ich poste die Antwort hier, falls es jemand anderem helfen kann:

Wir haben einige Änderungen vorgenommen und eine Möglichkeit implementiert, die Anzeige von [externem Inhalt] mithilfe der Richtlinien für Inhaltssicherheitsrichtlinien anstelle von X-Frame-Optionen zu ermöglichen. X-Frame-Optionen waren früher veraltet und wurden kürzlich von allen CSP-Direktiven abgelöst, die alle X-Frame-Option-Direktiven gemäß RFC 7034 abgelöst haben.

Beachten Sie jedoch, dass es viele Probleme mit der Unterstützung von Safari iFrames gab, da diese den Spezifikationen nicht vollständig entsprechen (entgegen der Behauptung).

Nach einer gründlichen Untersuchung unterstützt Safari CSF ab Version 10+ (neueste Version ist 12).

  • Unterstützung gibt es jedoch nur, wenn die X-Frame-Optionen undefiniert sind.
  • Wenn X-Frame-Optionen definiert sind, hat dies im Gegensatz zu den MDN-Spezifikationen Vorrang vor CSF.
  • Safari- und WebKit-basierte Browser unterstützen die X-Frame-Option-Direktive "allow-from" nicht und verhindern, dass bestimmten Websites Zugriff gewährt wird.
  • Und als solche unterstützt nicht mehrere Domains für das Whitelisting.

Wir verwenden jetzt Richtlinien zur Inhaltssicherheit, um die Erstellung von Whitelists für iFrames ohne X-Frame-Option-Anweisungen zu diktieren.

0
megseoh
X-Frame-Options: sameorigin

Dies allein (und in älteren Browsern) würde sicherlich den Zugriff verweigern. In kompatiblen Browsern würden Sie jedoch erwarten, dass der Content-Security-Policy:-Header dies überschreibt.

Angenommen, Sie haben die Kontrolle über diesen externen Inhalt, haben Sie versucht, diesen Header auf Folgendes zu setzen:

 X-Frame-Options: allow-from https://example.com

Oder

 X-Frame-Options: sameorigin, allow-from https://example.com

(Safari unterstützt möglicherweise nicht die allow-from-Direktive.)

Oder diesen Header komplett entfernen?

Ich frage mich, ob das Problem damit zusammenhängt, dass sich meine WordPress-Installation in einem Unterverzeichnis befindet.

Ich verstehe nicht, wie eine Installation von WordPress in einem Unterverzeichnis etwas damit zu tun hat.

0
MrWhite