2012-10-14 22 views
14

Desidero rimuovere l'intestazione dell'opzione X-Frame sul lato client su Firefox (e Chrome). Quello che ho trovato: la soluzione laterale Overcoming "Display forbidden by X-Frame-Options" Un non-client non è adatto per il mio scopoDisabilita X-Frame-Option sul lato client

https://bugzilla.mozilla.org/show_bug.cgi?id=707893 questo sembra essere abbastanza vicino. Ho provato a creare user.js nella dir del profilo con il codice user_pref ("b2g.ignoreXFrameOptions", true); ma non ha funzionato. La penultima entrata sembra implicare la compilazione di ff con codice modificato? Se questo è il caso, non è nemmeno una soluzione possibile per me.

Ho appena scritto una piccola pagina HTML con un JS che scorre un elenco di video di YouTube caricandoli successivamente in un iframe. So che YouTube supporta le playlist ma fanno schifo e non voglio scaricare i video. Inoltre, sarebbe bello se il browser ignorasse solo l'opzione X-Frame per i file locali. Ciò minimizzerebbe in qualche modo il buco di sicurezza che aprirò disabilitandolo. Per quanto riguarda Chrome, una soluzione sarebbe bella ma non è così importante.

Suppongo che un altro approccio sarebbe quello di intercettare i pacchetti TCP/IP in ingresso che contengono un Respone HTTP e rimuovere questa riga di intestazione, ma questo è piuttosto eccessivo.

[modifica] Utilizzando youtube.com/embed è una cattiva soluzione dal momento che un sacco di video non concedono per essere incorporato ...

risposta

6

questo può essere realizzato facilmente utilizzando un Osservatore HTTP attraverso un'estensione per Firefox. Questo osservatore sarà simile a questo:

let myListener = 
{ 
    observe : function (aSubject, aTopic, aData) 
    { 
     if (aTopic == "http-on-examine-response") 
     { 
      let channel = aSubject.QueryInterface(Ci.nsIHttpChannel); 

      try 
      { // getResponseHeader will throw if the header isn't set 

       let hasXFO = channel.getResponseHeader('X-Frame-Options'); 

       if (hasXFO) 
       { 
        // Header found, disable it 
        channel.setResponseHeader('X-Frame-Options', '', false); 
       } 
      } 
      catch (e) {} 
     } 
    } 
} 

È possibile trovare ulteriori informazioni come il modo di installare l'osservatore MDN [1] [2]

[1]: https://developer.mozilla.org/en/docs/Observer_Notifications#HTTP_requests

[2 ]: https://developer.mozilla.org/en-US/docs/Setting_HTTP_request_headers#Registering

+0

Ulteriori informazioni su altri browser sarebbe utile aswell! –

3

Utilizzando diegocr codice, ho creato un add-on Firefox per consentire la visualizzazione delle pagine web che hanno X-frame-Options nella loro intestazione, in modo che viene visualizzato quando si accede tramite un iframe. Può essere scaricato/installato qui: https://addons.mozilla.org/en-US/firefox/addon/ignore-x-frame-options/

+0

René Houkema, ho provato questo, ma non ha risolto il mio caso ho lasciato le informazioni nella sezione di revisione aggiuntiva –

+0

@ René Houkema Ho provato anche questo e non ho funzionato ho stampato Errore: [$ injector: modulerr] Impossibile istanziare il modulo demoApp a causa di ... – oshingc

+0

Eccellente - ha funzionato perfettamente! –

Problemi correlati