Rahhhhhh. Cochonnerie de IE 6... Ou comment perdre deux heures à cause d'un vieux navigateur bugué.



"Cette page contient des éléments sécurisés et non sécurisés". Voici ce que m'affiche un vieil Internet Explorer 6 chez un client. Mécontent, celui-ci pense que son service "HTTPS" n'est donc pas sécurisé. Hé bien si, à chercher dans tous les éléments de la page, à tracer le réseau, à étudier les logs du serveur Web. Rien. Pas la moindre requête "non sécurisée".

Alors voici finalement ce qu'il en est:

Tout d'abord, il m'a fallu rechercher si vous je n'avais pas des <iframe> vides, avec soit pas de "src", soit un "src" vide. Ceci peut être utile pour certaines manipulations en Ajax. Eh bien le ...X%*$... de développeur de IE considère que le vide n'est pas sécurisé! Parce qu'il n'est pas HTTPS!

Le contournement est simple, le mieux est de mettre (si votre iframe n'est pas visible)

    <iframe src="javascript:false"></iframe>

Ensuite, car ce n'était pas terminé, il m'a fallu éviter un

    <td style="background:url(monimage.gif)">

En effet, la encore pour une raison inconnue, une url relative n'est pas sécurisée. Etrange, d'autant plus que le contournement est simple : déclarez exactement le meme style, en CSS, et référez vous à ce style.

    // CSS
    .td_back{
      background:url(monimage.gif)
    }

... et dans l'HTML, ...
    <td class="td_back">

Bravo la sécurité. En déclarant le même objet de deux façons, l'un est sécurisé et l'autre pas ?? Ceci permet de comprendre comme la sécurité a été écrite avec les pieds dans un navigateur qui a occupé le haut du pavé pendant des années.


Comme dirait Tristan Nitot (sic) "Meurs IE6, Meurs!!"