drupal 8 – ¿Cómo incrustar contenido de drupal en otros sitios (eliminar X-Frame-Options: SAMEORIGIN)?

Pregunta:

Intenté hacer un iframe con una página de drupal pero recibí el siguiente mensaje:

Múltiples "Se negó a mostrar (dirección de página) en un marco porque estableció 'X-Frame-Options' en 'SAMEORIGIN'".

Luego, intenté cambiar el encabezado de respuesta en el controlador de página usando

$response->headers->set('X-Frame-Options', 'GOFORIT');

Y recibí el siguiente mensaje

Se encontraron varios encabezados 'X-Frame-Options' con valores en conflicto ('GOFORIT, SAMEORIGIN') al cargar '(dirección de la página)'. Volviendo a 'DENY'.

El núcleo de Drupal coloca el siguiente código en todas las respuestas.

$response->headers->set('X-Frame-Options', 'SAMEORIGIN', FALSE);

Entonces, ¿cómo puedo anular el encabezado X-Frame-Options para que solo esta respuesta incruste esta página en otros sitios?

Estoy usando Drupal 8.0.0.

Respuesta:

El encabezado X-Frame-Options parece haber sido agregado a Drupal 8 para evitar click-jacking: https://www.drupal.org/node/2514152

De acuerdo con la notificación anterior, para insertar su sitio Drupal en otros sitios,

se debe agregar un nuevo suscriptor de respuesta que tenga una prioridad más alta que el actual suscriptor de respuesta final (consulte core.services.yml) para sobrescribir o eliminar el encabezado, según el caso de uso

También proporciona un ejemplo de código:

<?php
    $path = $request->getPathInfo();

    if (strpos($path, '/fb-app/') === 0) {
      $request->headers->remove('X-Frame-Options');
    }
?>

Leave a Comment

Your email address will not be published. Required fields are marked *

web tasarım