Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Introduction au LocalStorage

Le LocalStorage est une API JavaScript fournie par les navigateurs modernes qui permet de stocker des données localement dans le navigateur de l'utilisateur, sous forme de paires clé-valeur. Contrairement aux cookies, les données dans LocalStorage ne sont pas envoyées automatiquement aux serveurs dans chaque requête HTTP et ne sont pas supprimées lorsque l'utilisateur ferme son navigateur ou l'onglet. Elles restent accessibles jusqu'à leur suppression explicite.


Comment utiliser LocalStorage ?

1. Stocker des données :

localStorage.setItem('clé', 'valeur');

2. Récupérer des données :

const valeur = localStorage.getItem('clé');

3. Supprimer une donnée spécifique :

localStorage.removeItem('clé');

4. Effacer tout le LocalStorage :

localStorage.clear();

5. Stocker des objets ou tableaux (conversion en JSON) :

LocalStorage ne peut stocker que des chaînes de caractères. Pour stocker des objets ou des tableaux, il faut les convertir en JSON.

const user = { name: 'Alice', age: 25 };
localStorage.setItem('user', JSON.stringify(user));

// Pour récupérer l'objet :
const userData = JSON.parse(localStorage.getItem('user'));

Avantages du LocalStorage

  1. Persistance des données :

    • Les données restent stockées même après la fermeture du navigateur ou un redémarrage de l'appareil, contrairement aux SessionStorage qui efface les données à la fermeture de l'onglet ou du navigateur.
  2. Facilité d'utilisation :

    • L'API LocalStorage est simple à utiliser avec ses méthodes setItem, getItem, removeItem, et clear.
  3. Capacité de stockage plus grande que les cookies :

    • Le LocalStorage permet de stocker jusqu'à 5 à 10 MB de données, ce qui est bien plus que les cookies, limités à environ 4 KB.
  4. Aucune transmission automatique des données :

    • Contrairement aux cookies, les données dans LocalStorage ne sont pas envoyées avec chaque requête HTTP. Cela réduit la surcharge réseau.

Inconvénients du LocalStorage

  1. Accès limité aux chaînes de caractères :

    • LocalStorage ne peut stocker que des chaînes de caractères. Pour stocker des objets ou des tableaux, il est nécessaire de passer par la conversion JSON (JSON.stringify et JSON.parse), ce qui rajoute une étape.
  2. Vulnérabilité aux attaques XSS :

    • Les données stockées dans LocalStorage peuvent être accessibles et modifiées via JavaScript. Cela signifie que si votre site est victime d'une attaque Cross-Site Scripting (XSS), un attaquant pourrait voler ou manipuler ces données. LocalStorage ne doit pas être utilisé pour stocker des données sensibles comme des jetons d'authentification ou des mots de passe.
  3. Pas d'expiration automatique :

    • Contrairement aux cookies, qui peuvent être configurés pour expirer après un certain temps, les données dans LocalStorage sont conservées indéfiniment jusqu'à leur suppression manuelle ou par du code.

Comparaison : LocalStorage vs autres moyens de stockage

Caractéristique LocalStorage SessionStorage Cookies IndexedDB
Taille 5 à 10 MB 5 à 10 MB 4 KB par cookie Limite beaucoup plus élevée (en fonction du navigateur)
Durée de vie Persistant, jusqu'à suppression manuelle Supprimé à la fermeture de l'onglet ou du navigateur Peut être configuré avec une date d'expiration Persistant, jusqu'à suppression manuelle
Types de données Chaînes de caractères uniquement Chaînes de caractères uniquement Chaînes de caractères uniquement Données structurées (objets, tableaux, fichiers binaires)
Accessibilité JavaScript Disponible via JavaScript Disponible via JavaScript Configurable (HttpOnly pour empêcher l'accès JavaScript) Accessible via des API plus complexes (asynchrone)
Transmission automatique Non Non Oui, envoyé avec chaque requête HTTP Non
Sécurité Vulnérable aux attaques XSS Vulnérable aux attaques XSS Peut être protégé avec HttpOnly, Secure, SameSite Sécurisé, mais plus complexe à utiliser
Utilisation principale Stockage persistant côté client pour des données non sensibles Stockage temporaire pendant la session Stockage persistant ou temporaire avec transmission automatique Stockage avancé pour grandes quantités de données structurées

Quand utiliser LocalStorage ?

  • Stocker des préférences utilisateur : Sauvegarder des paramètres comme le thème, la langue, ou les choix de l'utilisateur.
  • Conserver des données non sensibles : Sauvegarder des informations temporaires comme le contenu d'un formulaire ou d'un panier d'achats.
  • Sauvegarder des données entre les sessions : Permet de persister des informations même après la fermeture du navigateur.

Quand éviter LocalStorage ?

  • Stocker des données sensibles : Comme les jetons d'authentification (JWT), mots de passe, ou données personnelles. LocalStorage est vulnérable aux attaques XSS.
  • Lorsque des délais d'expiration sont nécessaires : Utilisez les cookies pour des données nécessitant une expiration automatique.

Bonnes pratiques avec LocalStorage

  1. Ne pas stocker de données sensibles : Utilisez-le uniquement pour des informations non critiques.
  2. Valider les données récupérées : Ne faites pas confiance aux données stockées dans le LocalStorage, elles peuvent être modifiées côté client.
  3. Limiter la taille des données stockées : Bien que LocalStorage puisse stocker jusqu'à 5 à 10 MB, essayez de limiter l'utilisation à des données légères.
  4. Utiliser le chiffrement : Si vous devez absolument stocker des données sensibles (bien que déconseillé), pensez à les chiffrer avant de les stocker.

Conclusion

Le LocalStorage est un excellent outil pour stocker des données localement et persister des informations d'une session à l'autre. Cependant, il a ses limites, notamment en termes de sécurité et de types de données. Dans certaines situations, il peut être préférable d'utiliser d'autres options comme SessionStorage, Cookies ou IndexedDB en fonction des besoins spécifiques de votre application.

Utilisez-le judicieusement en tenant compte de ses avantages et inconvénients, et n'oubliez pas de suivre les bonnes pratiques pour garantir la sécurité de vos utilisateurs.


Ressources supplémentaires

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages