Laravel 4: problema con l’uso di iframe

Nell’articolo di oggi vediamo come evitare che frameGuard di Laravel 4 blocchi l’erogazione delle vostre pagine su altri siti tramite iframe.

Panoramica del problema

Di recente ho sviluppato un applicativo web-based dove avevo la necessità di “erogare” una determinata pagina (collegata ad un specifico cliente registrato) su un network di siti tramite iframe. Con mia (amara) sorpresa ho notato che laravel, alla richiesta dell’iframe restituiva il classico messaggio di errore:

Refused to display 'http://tuosito/view/285as47' in a frame because it set 'X-Frame-Options' to 'SAMEORIGIN'.

Questo tipo di errore, è atto a prevenire l’embed della pagina tramite iframe, ed è usato attualmente da quasi tutti i major site in circolazione come Google, etc . Se provate ad inserire in una pagina un iframe contente Google o Youtube ad esempio sarete vittima dello stesso problema.

In verità nel 90% dei casi non si tratta di un vero problema dato che ci mette al riparo da sovraccarichi del server dovuti a malintenzionati che “prelevano” le nostre pagine, o parti di esse, tramite iframe. Nel mio caso specifico però lo era dato che l’applicativo che avevo sviluppato doveva erogare determinate pagine su altri siti network collegati di vari clienti.

Risoluzione

Ricercando su internet ho notato come laravel utilizzi frameGuard per “bloccare” le richieste provenienti da origini differenti. Per inibire l’utilizzo di frameGuard apriamo il file di boot chiamato start.php e aggiungiamo la seguente riga di codice prima  di return $app:

File: bootstrap/start.php

//Rendi disponibile iframe
App::forgetMiddleware('Illuminate\Http\FrameGuard');

A questo punto salvate e la vostra applicazione/sito in laravel riuscirà ad erogare le vostre pagine anche tramite iframe su siti di origine differente.

Questo articolo ti è stato utile? guarda la nostra selezione di guide laravel 4 oppure lascia un commento qui sotto con suggerimenti o informazioni utili!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.

php
Up Next:

PHP - Creare variabili dall'array _POST in modo automatico

PHP - Creare variabili dall'array _POST in modo automatico