Skip to main content

LocalStorage peut-il être utilisé en toute sécurité ?

Écrit par
Webinar LP header

30 janvier 2020

0 minutes de lecture

Internet a bien évolué depuis le tout premier site web, qui peinait à afficher correctement du texte. HTML5 est la dernière évolution du langage de balisage hypertexte. Il a été conçu pour permettre aux développeurs web de presque tout faire sans plugins supplémentaires pour le navigateur. Avec HTML5, les développeurs ont bénéficié de toute une série d’éléments sémantiques et graphiques, ainsi que de quelques fonctionnalités liées au stockage web, notamment le stockage local. Une question se pose naturellement : peut-on utiliser le stockage local en toute sécurité ?

Le stockage local a attiré l’attention des développeurs en tant que solution légère de stockage des données, qui ne nécessite ni base de données ni même serveur. C’est pratique, mais est-ce toujours une bonne idée de l’utiliser ? Voici quelques réflexions de l’équipe Snyk.

Qu’est-ce que LocalStorage ?

LocalStorage est un objet de stockage web HTML5 qui permet de stocker des données côté client, c’est-à-dire localement, sur l’ordinateur d’un utilisateur. Les données enregistrées localement n’ont pas de date d’expiration et restent disponibles jusqu’à leur suppression. (À l’inverse, le stockage de session, une autre API de stockage web HTML5, supprime les données enregistrées à la fermeture du navigateur.)

Le stockage local repose entièrement sur JavaScript. De même, bien qu’il génère toujours un document en texte brut sur l’appareil de l’utilisateur, il permet de stocker jusqu’à 5 Mo de données (contre 4 Ko pour un cookie). Cela a ouvert la voie à de nombreuses utilisations intéressantes du stockage local, comme la gestion du contenu pour réduire les requêtes au serveur et accélérer les temps de chargement.

Utilisé avec discernement, le stockage local peut constituer une solution légère et performante, mais il n’est pas sans inconvénients. Voici quelques raisons pour lesquelles son utilisation peut être une mauvaise idée, selon les données stockées.

Pourquoi l’utilisation de LocalStorage peut être une mauvaise idée

Le stockage local n’est pas intrinsèquement plus sûr que les cookies. Une fois ce point compris, cet objet peut servir à stocker des données sans importance du point de vue de la sécurité. Voici toutefois quelques raisons de reconsidérer l’utilisation du stockage local.

1. Si un site est vulnérable aux attaques XSS, LocalStorage n’est pas sûr

L’une des principales objections à l’utilisation du stockage local concerne les vulnérabilités de sécurité qui lui sont associées. Le stockage local partage de nombreuses caractéristiques avec les cookies, notamment les mêmes risques de sécurité. Il est notamment vulnérable aux attaques par script intersites (XSS), qui volent les cookies pour permettre aux pirates de se faire passer pour un utilisateur et d’exploiter sa session de connexion sur un site. Stocker des informations sensibles, comme un mot de passe, dans un fichier de stockage local simplifie le travail d’un pirate, puisqu’il n’a pas besoin de charger le cookie dans son propre navigateur.

2. Les développeurs ne contrôlent pas les données stockées localement

Avec le stockage local, il n’y a pas de stockage côté serveur ni de base de données que le développeur puisse contrôler. Cela peut poser problème pour plusieurs raisons. L’une d’elles est que les développeurs ne peuvent pas mettre à jour le code ou les informations une fois ceux-ci enregistrés. L’utilisateur doit alors supprimer le fichier manuellement, après l’avoir localisé, ou vider le cache de son navigateur, au risque de perdre toutes les données stockées.

3. Les utilisateurs vident leur cache

Vider régulièrement le cache du navigateur contribue au bon fonctionnement des cookies et constitue généralement la première étape pour résoudre des problèmes de navigateur, comme une page qui ne se charge pas correctement. Cela pose problème lorsqu’on utilise le stockage local pour assurer le fonctionnement d’un site. Si l’utilisateur vide le cache du navigateur, ces informations sont définitivement perdues. Le stockage local est donc plus utile comme base de données de secours.

Les alternatives à LocalStorage

Il existe plusieurs alternatives au stockage local, selon que les informations sont sensibles ou non. Les développeurs qui ne souhaitent pas utiliser le stockage local peuvent :

  •      Utiliser des sessions côté serveur pour les informations sensibles :Stocker les données sur le serveur présente plusieurs avantages pour les informations sensibles. D’abord, le développeur peut en garantir la sécurité et mieux contrôler les sessions individuelles (il peut les interrompre instantanément si nécessaire). Ensuite, les données sont protégées au sein de l’architecture, ce qui réduit le risque qu’elles soient exposées.

  •      Pour les informations non sensibles, choisir IndexedDB : pour les développeurs qui privilégient les sessions côté client, IndexedDB permet de créer des applications dont les données peuvent être stockées localement. Bien qu’il soit moins largement pris en charge par les navigateurs que le stockage local, il peut tout de même être utile pour stocker localement des données non sensibles. IndexedDB présente un avantage majeur sur le stockage local : c’est une véritable base de données, capable de gérer davantage de types de données.

Stockez vos données en toute connaissance de cause

Utilisé avec discernement, le stockage local peut améliorer les performances d’un site et contribuer à créer des applications plus légères. Toutefois, il ne faut jamais y stocker des informations sensibles comme des mots de passe ou des données personnelles. Cela crée un risque de sécurité tout à fait évitable si le serveur du site est déjà sécurisé.

Pour les informations qui nécessitent chiffrement et sécurité, il existe d’autres solutions efficaces et rapides, comme les sessions côté serveur. La cybersécurité étant un enjeu majeur, inutile de prendre des risques. Alors, n’en prenez pas.

Snyk vous aide à détecter et corriger en continu les vulnérabilités pour rester en sécurité. Inscrivez-vous pour obtenir un compte gratuit.

Lancez-vous dans les compétitions Capture The Flag

Apprenez à résoudre des défis Capture The Flag en regardant à la demande notre atelier virtuel d’initiation.