Firefox: iframe & sessionstore, un nuovo bug?

Stavo tranquillamente scrivendo uno script PHP contenente diversi iframe per tenere d’occhio più siti contemporaneamente, quando mi sono reso conto che Firefox non ne visualizzava correttamente il contenuto. In pratica visualizzava il contenuto dello stesso iframe più volte, nonostante l’indirizzo fosse diverso. Inizialmente ho pensato ad un mio errore, ma aprendo la pagina con un altro browser il problema non si presentava. A quel punto ho pensato che si trattasse di un conflitto con qualche extension o la cache che non si voleva aggiornare…ma tutti i miei tentativi di far funzionare il mio script correttamente sono risultati vani. Infine, andando a tentativi, ho capito che il problema era situato nel file sessionstore.js, eliminandolo tutto funzionava perfettamente. Dopo un po’ di prove ulteriori sono giunto a questa conclusione: Firefox ha un bug; o quantomento un comportamento “molto anomalo”.
Quando si verifica?
Il problema si presenta quando una pagina contiene 2 o più iframe (forse si verifica anche con i normali frame ma non ho controllato) e si riavvia il browser tenendo memoria delle schede aperte (opzione comodissima e utilizzatissima): se un iframe viene rimosso o ne viene cambiato l’indirizzo di riferimento verrà visualizzato un indirizzo diverso da quello che ci si aspetta. Qui sotto c’è uno schema che chiarisce meglio cosa succede: 
Quali versioni ne sono affette?
Dalle prove che ho effettuato il comportamento anomalo si verifica sia su Firefox 3 che sulla vecchia versione 2, ovviamente non sulla 1.5 visto che non vi era il salvataggio delle sessioni integrato. Per il momento ho verificato solo su Windows XP, a presto mi accerterò se anche le versioni per OS diversi ne sono affette.
Vediamo questo “bug”!
- prima di tutto è necessario attivare (se già non l’avete fatto) il session restore, ovvero quella funzionalità che riapre le ultime schede lasciate aperte alla chiusura di Firefox: Strumenti » Opzioni… »

- aprite lo script PHP/Javascript “iframe&sessionstore bugtest“, nel quale troverete tutte le indicazioni per testare sul vostro browser il bug; dovete avere Javascript e Cookie attivi! NOTA: lo script si basa sui COOKIE in quanto POST e GET fanno aggiornare la pagina visualizzandola correttamente
Ci sono rischi per la sicurezza?
La prima cosa che ho pensato è stata “è forse possibile utilizzare questo bug per scopi poco leciti?”. La mia idea era riuscire ad ottenere i privilegi relativi ad una pagina locale in un sito esterno, però sembra che questo non sia possibile, tuttavia non sono un grande esperto di Javascript, quindi spero che, se verrà riconosciuto effettivamente come un bug, vengano effettuati i dovuti accertamenti e sia corretto quanto prima.
In conclusione…
Testando lo script di bugtest su altri browser (IE, Opera, Chrome) potete constatare che questo strano comportamento non si verifica. A questo punto non mi resta che aprire un topic su bugzilla per segnalare il bug e sperare che sia risolto quanto prima!
SI: è un nuovo BUG! AGGIORNAMENTO
In data 14/05/2009 lo status è passato da UNCONFIRMED a NEW, quindi pare proprio che io abbia scoperto un nuovo bug!