Domanda

Sto sviluppando una pagina web che deve visualizzare, in un iframe, un rapporto serviti da server di SharePoint di un'altra azienda. Sono bene con questo.

La pagina che stiamo cercando di rendere in iframe ci sta dando X-Frame-Options: SAMEORIGIN che fa sì che il browser (almeno IE8) di rifiutare di rendere il contenuto di una cornice.

In primo luogo, è questo qualcosa che può controllare o è qualcosa di SharePoint semplicemente fa di default? Se chiedo loro di disattivare questa funzionalità, potevano anche farlo?

In secondo luogo, posso fare qualcosa per dire al browser di ignorare questo http intestazione e solo rendere il telaio?

È stato utile?

Soluzione

Se la seconda società è felice per voi di accedere ai propri contenuti in un iframe quindi hanno bisogno di prendere la restrizione off - possono farlo abbastanza facilmente nel IIS config.

Non c'è niente che puoi fare per aggirarlo e tutto ciò che fa il lavoro dovrebbe ottenere patch rapidamente in un aggiornamento rapido di sicurezza. Non si può dire al browser per il rendering solo la cornice se l'intestazione contenuto sorgente dice non consentito in fotogrammi. Ciò renderebbe più facile per il dirottamento di sessione.

Se il contenuto è ottiene solo lo fai dati non pubblicare allora si potrebbe ottenere il lato server della pagina e delega il contenuto senza l'intestazione, ma poi di nuovo ogni post dovrebbe ottenere invalidata.

Altri suggerimenti

UPDATE 2019: possono di bypass X-Frame-Options in un <iframe> usando il mio X-frame-bypass Web Component. Si estende l'elemento IFRAME utilizzando più CORS proxy ed è stato testato nel più recente di Firefox e Chrome.

È possibile utilizzare come segue:

  1. (opzionale) Includere il elementi personalizzati con Built-in estende polyfill per Safari:

    <script src="https://unpkg.com/@ungap/custom-elements-builtin"></script>
    
  2. includere il modulo JS Bypass X-Frame-:

    <script type="module" src="x-frame-bypass.js"></script>
    
  3. Inserisci il X-Frame-Bypass personalizzato Elemento:

    <iframe is="x-frame-bypass" src="https://example.org/"></iframe>
    

Gli X-Frame-Options intestazione è un elemento di sicurezza applicata a livello di browser.

Se hai il controllo della tua base di utenti (IT dept per corp app), si potrebbe provare qualcosa di simile a uno script di Greasemonkey (se si può a) implementare Greasemonkey attraverso tutti e b) distribuire lo script in un modo comune) .. .

In alternativa, è possibile procura loro risultato. Creare un endpoint sul server, e che hanno endpoint aprire una connessione all'endpoint di destinazione, e semplicemente all'indietro traffico imbuto.

Per quanto riguarda la seconda domanda - è possibile utilizzare Fiddler filtri per intestazione X-Frame-Options reazione impostata manualmente a qualcosa di simile ALLOW-FROM * . Ma, naturalmente, questo trucco funziona solo per te -. Altri utenti ancora non saranno in grado di vedere iframe contenuti (se non lo fanno lo stesso)

Si Fiddler è un'opzione per me:

  1. Apri Menu Fiddler> Regole> Regole Personalizza (questa modifica in modo efficace CustomRules.js).
  2. Trova la funzione OnBeforeResponse
  3. aggiungere le seguenti righe:

    oSession.oResponse.headers.Remove("X-Frame-Options");
    oSession.oResponse.headers.Add("Access-Control-Allow-Origin", "*");
    
  4. Ricordati di salvare lo script!
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top