Chi ha Internet explorer 11 può provare ad andare in questa pagina https://turbolab.it/utenti/crazy.cat e vedere se ci sono tutte le immagini a fianco degli articoli?
Oppure se vede alcune X cliccabili che aprono poi gli articoli lo stesso.
Con firefox funziona tutto regolarmente.
La più grande lezione nella vita è sapere che anche i pazzi, alle volte, hanno ragione.
Il bug mi è sembrato insolito: il comportamento che si manifestava (blocco dei contenuti) avviene solo in caso di discrepanze fra l'intestazione del contenuto servito ed il reale contenuto del file. Ho quindi cercato di replicare il comportamento di Internet Explorer utilizzando un proxy locale (forzando l'header nosniff) ed effettivamente il problema si manifesta.
Perché si verifica? Malgrado sia vecchiotto "The Proxomitron" è un piccolo strumento veramente utile: il problema è causato dal fatto che le immagini sono fornite con header "image/jpg" non conforme agli standard (quello corretto sarebbe "image/jpeg"). Tutto ciò causa due problemi degli di nota:
Se si cerca di visionare direttamente il file d'immagine, utilizzando Internet Explorer, questo non è renderizzato ma viene mostrata una richiesta di download: proprio perché il browser non riconosce il mimetype
Il parametro "nosniff" dell'header X-Content-Type-Options blocca la risorsa fornita con l'header errato (poi quest'ultimo differisce da quello del reale contenuto del file
Soluzione:
Riscrivere l'header erroneo rendendolo conforme
Applicare nuovamente il parametro "nosniff" all'header X-Content-Type-Options
Test:
Effettuo una richiesta ad un file d'immagine di TLI utilizzando Internet Explorer 11 connesso via proxy (The Proxomitron in modalità solo log, senza modifiche agli header) alla rete
Analizzo i parametri della richiesta
Analizzo il sorgente dell'immagine e i parametri della richiesta (attraverso una funzione di The Proxomitron) per accertarmi che l'intestazione dell'immagine sia conforme a quella jpeg standard (inizialmente sospettavo che le immagini fossero fornite in forma codificata via base64)
Pulisco la cache del browser
Rimuovo l'opzione di The Proximitron ed effettuo nuovamente la richiesta: viene mostrata una richiesta di download
Sempre mediante The Proxomitron applico e creo un filtro che si occupi di riscrivere l'header in maniera conforme e lo abilito
Pulisco la cache del browser
Effettuo nuovamente la richiesta: l'immagine viene mostrata correttamente
Creo un filtro che si occupi di "aggiungere" l'header mancante (X-Content-Type-Options: nosniff) e lo abilito
Pulisco la cache del browser
Effettuo nuovamente la richiesta: tutto bene come prima
Disabilito il filtro relativo al "nosniff"
Pulisco la cache del browser
Carico la homepage di TurboLab.it: viene renderizzata correttamente
Disabilito il filtro che riscrive l'header col quale vengono forniti i file d'immagine ed abilito quello relativo al "nosniff"
Pulisco la cache del browser
Carico la homepage di TurboLab.it: le immagini non vengono renderizzate
Abilito entrambi i filtri
Pulisco la cache del browser
Carico la homepage di TurboLab.it: viene renderizzata correttamente
Zane ha scritto:Wow, complimenti per la tua completissima analisi! Manco a dirlo, il problema era proprio quello. Fixato poco fa (vuotare la cache del browser!).
Inserendo un messaggio, dichiari di aver letto e accettato il regolamento di partecipazione.
Nello specifico, sei consapevole che ti stai assumendo personalmente la totale responsabilità delle tue affermazioni, anche in sede civile e/o penale,
manlevando i gestori di questo sito da ogni coinvolgimento e/o pretesa di rivalsa.
Dichiari inoltre di essere consapevole che il messaggio sarà visibile pubblicamente, accetti di diffonderlo con licenza
CC BY-NC-SA 3.0 (con attribuzione a "TurboLab.it") e rinunci ad ogni forma di compensazione (economica o altro).
Rinunci inoltre esplicitamente a qualsiasi pretesa di cancellazione del messaggio.