Ich habe versucht, einen Iframe mit einer Drupal-Seite zu erstellen, aber ich habe die folgende Nachricht erhalten:
Multiple "Die Anzeige (Seitenadresse) in einem Frame wurde abgelehnt, da" X-Frame-Optionen "auf" SAMEORIGIN "gesetzt wurde."
Dann habe ich versucht, den Header der Antwort in Page Controller mit zu ändern
$response->headers->set('X-Frame-Options', 'GOFORIT');
Und ich habe die folgende Nachricht erhalten
Beim Laden von '(Seitenadresse)' sind mehrere 'X-Frame-Options'-Header mit widersprüchlichen Werten (' GOFORIT, SAMEORIGIN ') aufgetreten. Zurückgreifen auf "VERWEIGERN".
Drupal Core fügt den folgenden Code in alle Antworten ein.
$response->headers->set('X-Frame-Options', 'SAMEORIGIN', FALSE);
Wie kann ich den X-Frame-Options-Header überschreiben, damit nur diese Antwort diese Seite in andere Websites einbettet?
Ich benutze Drupal 8.0.0.
4k4 geben tolle Lösung, können aber auch sein
besser als
quelle
allow-from uri
veraltet ist und in modernen Browsern nicht mehr funktioniert. Die einzigen 2 Optionen, die dieser Header derzeit hat, sindsameorigin
oderdeny
. X-Frame-Optionen MDNEs ist sehr einfach, die Header
.htaccess
mit einer einzigen Anweisung zu überschreibenAlternativ können Sie festlegen, dass es nur unter bestimmten Bedingungen angewendet wird, indem Sie Apache-Ausdrücke für if-Anweisungen verwenden
und dann können Sie Ihre vollständigen URL aufrufen
embed
in der Abfrage - StringDamit dies funktioniert, benötigen Sie Apache 2.4 oder höher und das Header- Modul ist aktiviert. Wenn nicht aktiviert, können Sie sie möglicherweise mit aktivieren
quelle
Es gibt jetzt ein herunterladbares Modul für Drupal 8: X-Frame-Options Configuration
quelle
Für neuere Browser
ALLOW-FROM uri
funktionieren die Einstellungen nicht mehr, siehe Abschnitt "Zulassen von uri (veraltet)" - Abschnitt in https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame- OptionenSie müssen hinzufügen
$response->headers->set('Content-Security-Policy', 'frame-ancestors https://ALLOWED.SITE/');
zusätzlich zu dem, was wakh.ru vorgeschlagen hat:$response->headers->set('X-Frame-Options', 'ALLOW-FROM https://ALLOWED.SITE/');
quelle