J'ai essayé de faire un iframe avec une page drupal mais j'ai reçu le message suivant:
Multiple "Refus d'afficher (l'adresse de la page) dans un cadre car il a défini" X-Frame-Options "sur" SAMEORIGIN "."
Ensuite, j'ai essayé de changer l'en-tête de réponse dans le contrôleur de page en utilisant
$response->headers->set('X-Frame-Options', 'GOFORIT');
Et j'ai reçu le message suivant
Plusieurs en-têtes 'X-Frame-Options' avec des valeurs contradictoires ('GOFORIT, SAMEORIGIN') rencontrés lors du chargement de '(adresse de page)'. Revenir à «DENY».
Drupal core met le code suivant dans toutes les réponses.
$response->headers->set('X-Frame-Options', 'SAMEORIGIN', FALSE);
Alors, comment puis-je remplacer l'en-tête X-Frame-Options pour cette réponse uniquement pour intégrer cette page dans d'autres sites?
J'utilise Drupal 8.0.0.
4k4 donne une excellente solution, mais peut également être
mieux que
la source
allow-from uri
est obsolète et ne fonctionnera plus sur les navigateurs modernes. Les 2 seules options que cet en-tête a actuellement sontsameorigin
oudeny
. X-Frame-Options MDNIl est très simple de remplacer les en-têtes
.htaccess
avec une seule instructionAlternativement, vous pouvez le faire appliquer uniquement à certaines conditions en utilisant des expressions if instruction apache
puis vous pouvez appeler votre URL en ajoutant
embed
dans votre chaîne de requêtePour que cela fonctionne, vous aurez besoin d' apache 2.4 ou supérieur et du module d'en- têtes activé. Sinon, vous pouvez peut-être les activer avec
la source
Il y a maintenant un module téléchargeable pour Drupal 8: Configuration des options X-Frame
la source
Pour les navigateurs plus récents, les
ALLOW-FROM uri
paramètres ne fonctionneraient plus, voir la section "allow-from uri (obsolete)" dans la section https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame- Les optionsVous devez ajouter
$response->headers->set('Content-Security-Policy', 'frame-ancestors https://ALLOWED.SITE/');
en plus de ce que wakh.ru proposait:$response->headers->set('X-Frame-Options', 'ALLOW-FROM https://ALLOWED.SITE/');
la source