2012-06-15 6 views
6

Sto cercando di implementare una soluzione alternativa per la funzionalità CORS mancante in Internet Explorer. Per le richieste GET io uso JSONP, nessun problema qui. Per le piccole richieste POST/DELETE/PUT, utilizzo anche JSONP eseguendo il tunneling delle richieste tramite GET, ma ciò non funziona per le richieste più grandi (poiché la lunghezza dell'URL GET è limitata). Quindi per i dati di grandi dimensioni, cerco di implementare un modulo POST tramite un iframe. Non riesco a leggere la risposta di questo POST a causa della politica della stessa origine, quindi recupero la risposta tramite una richiesta GET JSONP dopo aver pubblicato i dati. Grandi opere, ma a volte ho uno strano avvertimento in IE 9:Cosa attiva "Internet Explorer ha modificato questa pagina per aiutare a prevenire lo scripting cross-site."?

Internet Explorer has modified this page to help prevent cross-site scripting. 

Prima mi sono chiesto cosa diavolo IE sta facendo lì perché anche quando questo avvertimento appare tutto funziona ancora correttamente. Poi ho scoperto che IE sostituisce il contenuto dell'iframe nascosto DOPO la risposta POST (che non riesco a leggere e comunque ho bisogno) con un carattere "#".

Quindi la mia soluzione alternativa funziona anche quando appare questo avviso, ma vorrei sapere che cosa fa scattare esattamente questo avviso, quindi forse posso modificare la mia soluzione CORS per sbarazzarsi di questo avviso. Qualche suggerimento?

+0

IE protegge da [XSS riflesso] (http://en.wikipedia.org/wiki/Cross-site_scripting#Non-persistent) e penso che controlli se la risposta del server contiene dati che gli sono stati passati nel richiesta in un formato senza caratteri. Se non hai comunque bisogno della risposta alla tua richiesta POST, allora suppongo che non inviare nulla ci risolverà? –

+0

La risposta è già vuota. Non sto sprecando larghezza di banda per i dati che non riesco a leggere comunque. – kayahr

+0

Hai guardato [http://stackoverflow.com/questions/4635403/how-to-set-http-header-x-xss-protection](http://stackoverflow.com/questions/4635403/how-to -set-http-header-x-XSS-protezione)? –

risposta

9

È possibile configurare l'intestazione X-XSS-Protection sul server. Questo dirà a IE di disabilitare la protezione XSS sul tuo sito.