Connexion
Abonnez-vous

HTML5 et Local Storage : quand Chrome, IE et Safari saturent votre disque

Avec des Lolcats en plus !

HTML5 et Local Storage : quand Chrome, IE et Safari  saturent votre disque

Le 04 mars 2013 à 07h46

Feross Aboukhadijeh, un jeune développeur de 22 ans, vient de dévoiler une faille au niveau de l'implémentation du Local Storage de certains navigateurs. En effet, dans certains cas, il est possible d'écrire des données jusqu'à saturer complètement le disque dur... sauf si le navigateur plante avant évidemment.

html5

 

Ce n'est pas la première fois que Feross Aboukhadijeh s'illustre. En effet, il est déjà à l'origine de la mise en évidence de la faille sur l'API Fullscreen de HTML5. Cette fois, c'est sur celle dédiée au stockage d'informations qu'il s'est penché : Local Storage.

Les navigateurs limitent la capacité du Local Storage...

Comme le préconise le World Wide Web Consortium (W3C) dans sa Candidate Recommandation concernant le Web Storage, les navigateurs ont mis en place une limite sur l'espace de stockage alloué aux différents sites. Elle varie suivant les cas et serait de 2,5 Mo pour Chrome, 5 Mo pour Firefox et Opera et 10 Mo pour Internet Explorer. Aucun souci sur ce point, tout fonctionne visiblement comme prévu.

 

En effet, le problème se situe sur la gestion des sous-domaines : a1.example.com, a2.example.com, a3.example, etc. Ce point est d'ailleurs abordé par le W3C qui met en garde sur cette possibilité de « contourner la limite de stockage ». En effet, il suffit de rester dans la limite définie par le navigateur, mais de les multiplier à l'infini afin de pouvoir stocker des données sans restriction.

... mais sous Chrome, IE et Safari il est possible de contourner les restrictions

Et dans la pratique, Chrome, Internet Explorer et Safari semblent touchés par ce souci et laissent un unique site saturer entièrement le stockage disponible... ou presque. En effet, il n'est pas rare que Chrome plante avant que l'on en arrive à cette étape.

 

Notez qu'un site spécialement conçu pour l'occasion a été mis en place à cette adresse. Mais attention, votre navigateur risque de ne pas beaucoup aimer cette expérience. Vous pouvez évidemment cliquer sur le bouton « Stop the Madness! » pour annuler toutes les opérations d'écriture en cours.

 

Internet Explorer Filldifk

Exemple avec Internet Explorer 10 : 2,7 Go utilisés. De son côté, Chrome avait déjà planté depuis longtemps.

Firefox et Opera : les bons élèves de la classe

Avec Firefox 19 et Opera 12.14 les choses se passent différemment. En effet, dans le cas du navigateur de Mozilla, Feross Aboukhadijeh précise que la gestion du Local Storage se fait de manière « plus intelligente » (sans plus de précisions), tandis que, d'après nos constations, Opera demandera une autorisation à l'utilisateur une fois arrivé aux alentours de 70 Mo. Étrangement, aucune confirmation n'a été demandée lors d'une session privée.

 

Ces bugs ont bien entendu été signalés aux différentes sociétés proposant les navigateurs concernés. Gageons que des correctifs arriveront rapidement.

Commentaires (41)

Vous devez être abonné pour pouvoir commenter.

Abonnez-vous
votre avatar







tchevalier a écrit :



Firefox a juste implémenté LocalStorage correctement, la limite se fait par domaine, et non par sous-domaine comme précisé dans la spec.







Juste une petite précision la limitation par domaine n’est pas obligatoire dans les specs, c’est une recommandation (un SHOULD). Et ça a son importance les verbes must, may, shall, should etc ne sont pas utilisés au hasard (cf RFC2119).


votre avatar



Feross Aboukhadijeh précise que la gestion du Local Storage se fait de manière « plus intelligente »





Il est vendu aux libristes. C’est un attentat des libristes, je vous le dis.



Méchant, méchant libriste. <img data-src=" />

votre avatar







tchevalier a écrit :



La spec précise que le navigateur doit proposer à utilisateur de faire de la place pour ce domaine si la limite est atteinte. Ok, c’est pas la solution optimale, mais entre ça et se faire remplir son disque <img data-src=" />





Je suppose qu’ils ne le font pas pour le moment, sinon on ne parlerait pas de remplissage et de plantages… Aie aie aie.


votre avatar







bzc a écrit :



Juste une petite précision la limitation par domaine n’est pas obligatoire dans les specs, c’est une recommandation (un SHOULD). Et ça a son importance les verbes must, may, shall, should etc ne sont pas utilisés au hasard (cf RFC2119).







Mozilla a interprété la spécification d’une façon différente des autres éditeurs qui s’est avérée plus appropriée. Mieux ?


votre avatar







wanou2 a écrit :



IE6 est touché ?



Pensons au personnel des grandes bureaucraties (privées et publiques)





Dredi c’était y’a 3 jours.


votre avatar

et hop le double post <img data-src=" />

votre avatar







psn00ps a écrit :



Ceux qui ont spécifié Local Storage n’ont pas pensé aux blogs : a1.example.com, a2.example.com est quelque chose de courant.





C’est aussi bien que ça soit ainsi : imagine le problème avec des sites malicieux créant autant de sous domaines virtuels à la volée dans le seul but de saturer ta machine …


votre avatar

C’est pas nouveau, j’ai eu le problème en developpant une web app avec phone gap sous android / ios il y a un an… si j’avais su j’aurais balancer l’info ^^

votre avatar







127.0.0.1 a écrit :



“Le browser HTML5 sera le plus gros cheval de Troie dans l’histoire de l’informatique.”



Prédiction de Madame Irma, voyante astrocomputologue.







Il va avoir beaucoup de mal a rattraper le plug-in Java <img data-src=" />


votre avatar







NeVeS a écrit :



Il va avoir beaucoup de mal a rattraper le plug-in Java <img data-src=" />





En parlant de notre cher ami, il cherche à se mettre à jour tous les jours depuis une semaine, pour ensuite me dire qu’il est déjà à jour… <img data-src=" />



Sinon, <img data-src=" /> Opera



votre avatar

J’ai désactivé le webstorage sur Opera depuis le début et ça empêche aucun site de fonctionner.



A part être des cookies plus chiant à effacer je vois pas l’intérêt immédiat <img data-src=" />

votre avatar







tchevalier a écrit :



Mozilla a interprété la spécification d’une façon différente des autres éditeurs qui s’est avérée plus appropriée. Mieux ?







Nah, ils ont juste décidé de pas faire les feignasses et ont regardé plus loin que les “must”…



En général, ne pas regarder que les must permet aussi de saisir l’intention derrière la norme et d’anticiper ses évolutions. ça permet d’avoir une analyse plus juste dès le départ et d’éviter de devoir jeter des brouettes de code quand la norme évolue.


votre avatar







le-gros-bug a écrit :



J’ai désactivé le webstorage sur Opera depuis le début et ça empêche aucun site de fonctionner.



A part être des cookies plus chiant à effacer je vois pas l’intérêt immédiat <img data-src=" />





Tu verras l’intérêt pour les jeux en HTML5 par exemple pour stocker les données du joueur. C’est très utile aussi en fonctionnement offline.


votre avatar







Meowcate a écrit :



The internet is made of cats, and that’s a fact.





and ponies!!!


votre avatar







NeVeS a écrit :



Il va avoir beaucoup de mal a rattraper le plug-in Java <img data-src=" />







Java, Flash, activeX… nan, y a du monde à se battre pour cette place là, c’est loin d’être gagné d’avance pour le HTML 5 <img data-src=" />


votre avatar

The internet is made of cats, and that’s a fact.

votre avatar



The Joys of HTML5



C’est exactement çà <img data-src=" />

votre avatar



Ce n’est pas la première fois que Feross Aboukhadijeh s’illustre

L’est féroce, le bougre. <img data-src=" /><img data-src=" />





——————&gt;[_]

votre avatar

Je n’ai pas bien compris… La limite est gérée par sous-domaine et pas par domaine, c’est ça ?

votre avatar

“Le browser HTML5 sera le plus gros cheval de Troie dans l’histoire de l’informatique.”



Prédiction de Madame Irma, voyante astrocomputologue.

votre avatar



dans le cas du navigateur de Mozilla, Feross Aboukhadijeh précise que la gestion du Local Storage se fait de manière « plus intelligente »





Firefox a juste implémenté LocalStorage correctement, la limite se fait par domaine, et non par sous-domaine comme précisé dans la spec.

votre avatar







127.0.0.1 a écrit :



“Le browser HTML5 sera le plus gros cheval de Troie dans l’histoire de l’informatique.”



Prédiction de Madame Irma, voyante astrocomputologue.





Remboursez ! Quand je paye une voyante, c’est pour qu’elle me dise des choses que j’ignore.


votre avatar







Feross a écrit :





  • Apple bug report (on an unoffical site, since Apple doesn’t acknowledge their bugs publicly. So lame.)



    • How do I file a bug on IE? Their bug report page is broken. Microsoft bug report (requires login)

    • Opera bug report (bug ID: DSK-383073, it’s private)





      <img data-src=" />







      127.0.0.1 a écrit :



      “Le browser HTML5 sera le plus gros cheval de Troie dans l’histoire de l’informatique.”



      Prédiction de Madame Irma, voyante astrocomputologue.





      C’est tout le souci des décrets d’application (comment les éditeurs implémentent les specs). Ça veut pas dire qu’il faut jeter le bébé avec l’eau du bain mais entre le rêve vendu sur le papier et la réalité…

      Cela dit, en l’état actuel de l’art, oui <img data-src=" />





votre avatar







tchevalier a écrit :



Firefox a juste implémenté LocalStorage correctement, la limite se fait par domaine, et non par sous-domaine comme précisé dans la spec.





Ceux qui ont spécifié Local Storage n’ont pas pensé aux blogs : a1.example.com, a2.example.com est quelque chose de courant.


votre avatar







tchevalier a écrit :



Firefox a juste implémenté LocalStorage correctement, la limite se fait par domaine, et non par sous-domaine comme précisé dans la spec.







Ça peut-être gênant pour les sites type monsite.free.fr par exemple.



Édit : grillé :P


votre avatar







WereWindle a écrit :



<img data-src=" />





C’est tout le souci des décrets d’application (comment les éditeurs implémentent les specs). Ça veut pas dire qu’il faut jeter le bébé avec l’eau du bain mais entre le rêve vendu sur le papier et la réalité…

Cela dit, en l’état actuel de l’art, oui <img data-src=" />







  • Opera bug report (bug ID: DSK-383073, it’s private)

    C’est le vrai ID du bug report ? <img data-src=" /> Oh le gros cochon qui remplit le disque en en mettant partout !!


votre avatar







psn00ps a écrit :



Ceux qui ont spécifié Local Storage n’ont pas pensé aux blogs : a1.example.com, a2.example.com est quelque chose de courant.







La spec précise que le navigateur doit proposer à utilisateur de faire de la place pour ce domaine si la limite est atteinte. Ok, c’est pas la solution optimale, mais entre ça et se faire remplir son disque <img data-src=" />


votre avatar

IE6 est touché ?



Pensons au personnel des grandes bureaucraties (privées et publiques)

votre avatar

j’ai utiliser le site en question pour voir la saturation du disque dur par la faille, et bien ça ma fait planter google chrome au bout de 980 mo sur un Windows 7 64 bits:



http://imageshack.us/photo/my-images/405/capture3cd.jpg/





<img data-src=" />

votre avatar



Étrangement, aucune confirmation n’a été demandée lors d’une session privée.



Il n’y a que moi qui voit dans cette phrase un gros sous-entendu sur la raison majeure d’utiliser une session privée ? <img data-src=" /><img data-src=" />

votre avatar







psn00ps a écrit :





  • Opera bug report (bug ID: DSK-383073, it’s private)

    C’est le vrai ID du bug report ? <img data-src=" /> Oh le gros cochon qui remplit le disque en en mettant partout !!





    <img data-src=" />


votre avatar







tchevalier a écrit :



Mozilla a interprété la spécification d’une façon différente des autres éditeurs qui s’est avérée plus appropriée. Mieux ?





Opera semble avoir aussi procédé différemment des autres éditeurs, en allouant 5Mio de stockage par site mais en fixant aussi un quota global de stockage local (100 Mio par défaut via opera:config#PersistentStorage|GlobalQuotaForlocalStorage ) pour éviter la saturation d’un disque.

Opera demandera l’autorisation d’augmenter le quota site/global si nécessaire et permet aussi facilement (sans extension) d’accéder (pour suppression ciblée éventuelle) à la liste des sites ayant stocké là dedans (avec indication de taille). Je sais pas si c’est mieux que quoi non plus, mais c’est pas trop mal pensé à priori <img data-src=" />


votre avatar







Citan666 a écrit :



Il n’y a que moi qui voit dans cette phrase un gros sous-entendu sur la raison majeure d’utiliser une session privée ? <img data-src=" /><img data-src=" />





En session privée, Opera ne stocke pas ce genre de données sur disque (contrairement à Chrome par exemple) donc ne gère pas de quota non plus. Par contre, comme il a l’air d’utiliser la mémoire vive à la place, il y aura des risques de saturation à un moment ou un autre, sur un exploit de ce type…


votre avatar

Pour info voici la musique sur Youtube :youtube.com YouTube

votre avatar

Yahoooo je suis avec mon petit FireFox <img data-src=" />

votre avatar







HarmattanBlow a écrit :



Remboursez ! Quand je paye une voyante, c’est pour qu’elle me dise des choses que j’ignore.







La séance est non remboursable.



Voilà, elle a dit quelque chose que tu ignorais. <img data-src=" />


votre avatar

C’est exactement l’exemple que l’utilisation d’un seul moteur de rendu peut être problématique.

votre avatar

Doc_Nimbus&gt;C’est surtout l’exemple de l’utilité de l’implémentation de draft : voir les failles avant qu’elles ne soient normées.

votre avatar







ra-mon a écrit :



En session privée, Opera ne stocke pas ce genre de données sur disque (contrairement à Chrome par exemple) donc ne gère pas de quota non plus. Par contre, comme il a l’air d’utiliser la mémoire vive à la place, il y aura des risques de saturation à un moment ou un autre, sur un exploit de ce type…





Ah ok, merci de la précision. Je pensais que c’était plutôt l’inverse, stocker sans limite les vidéos visionnées pour faciliter leur récupération…<img data-src=" /><img data-src=" />


votre avatar

sous IE 10/32bits, le remplissage ne dépasse pas les 2go (environ). test effectué sous Win 7/64bits.

votre avatar

Nous sommes servis ; Applets Java, Applets Flash, IFRAME, PDF, JavaScript, Active X, et maintenant HTML 5. Va falloir revenir aux browsers en mode “texte” <img data-src=" />

HTML5 et Local Storage : quand Chrome, IE et Safari saturent votre disque

  • Les navigateurs limitent la capacité du Local Storage...

Fermer