Sécurité : ce qu’il ne faut jamais stocker
Évitez de stocker des jetons ou des PII dans `localStorage`.
Sécurité : ce qu’il ne faut jamais stocker est une leçon HTML Academy gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage HTML Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours HTML Academy comprend 4 leçons au total.
Le stockage est en texte brut
localStorage et sessionStorage enregistrent les données sans chiffrement sur le disque, dans le profil de l’utilisateur. Tout processus ayant accès au système de fichiers, notamment un logiciel malveillant, un outil de sauvegarde ou un autre utilisateur connecté, peut lire toutes les valeurs stockées sans passer par le navigateur.
Accessible à tout script
Tous les scripts exécutés sur l’origine partagent le même espace de stockage. Une attaque XSS réussie, un SDK tiers compromis ou une extension de navigateur malveillante peut appeler localStorage.getItem et exfiltrer toutes les valeurs stockées. Il n’existe aucune isolation entre les scripts.
Ne stockez jamais de jetons d’authentification
Ne placez pas de jetons de session, de JWT, de jetons d’actualisation ni de clés d’interface de programmation dans localStorage. Si un attaquant injecte une seule ligne de JavaScript, le jeton est immédiatement divulgué. Utilisez des cookies httpOnly, Secure et SameSite afin que le jeton ne soit jamais accessible depuis JavaScript.
Ne stockez jamais de mots de passe
Stocker des mots de passe sous quelque forme que ce soit — en clair, hachés ou chiffrés — est incorrect côté client. Le hachage côté client n’aide pas lorsque l’attaquant peut lire le hachage et le réutiliser. La gestion des mots de passe doit être entièrement effectuée sur le serveur avec un hachage dédié, comme bcrypt.
Ne stockez jamais les données de carte bancaire
PCI-DSS interdit de stocker les numéros de carte, les codes CVV, les données de bande magnétique ou les dates d’expiration dans le stockage côté client. Utilisez plutôt un prestataire de paiement utilisant la tokenisation (Stripe, Braintree, Adyen), qui renvoie un jeton à durée de vie courte associé à votre origine.
Ne stockez jamais les identifiants personnels
Les pièces d’identité officielles, les dates de naissance complètes, les adresses personnelles et les données médicales attirent les autorités de contrôle (GDPR, HIPAA) ainsi que les attaquants. Ne stockez que ce qui est nécessaire pour la session en cours, redemandez ces informations lorsque cela est nécessaire et laissez le serveur conserver la source de vérité.
Une XSS amplifie les dégâts
Une faille XSS qui divulgue document.cookie est grave. La même faille sur une page qui stocke des jetons dans localStorage remet à l’attaquant toutes les valeurs stockées en une seule fois. Considérez localStorage comme une surface où « la compromission d’un script compromet tout ».
Le chiffrement ne vous protège pas
Chiffrer des valeurs avec une clé qui se trouve également dans JavaScript n’offre aucune protection réelle : l’attaquant capable de lire le texte chiffré peut aussi lire la clé. Les véritables secrets doivent rester côté serveur et être réémis, jamais conservés côté client.
Ce que vous pouvez stocker sans risque
Les préférences de l’interface utilisateur (thème, barre latérale réduite, langue), les indicateurs de fonctionnalité non sensibles, le contenu de formulaires en brouillon et l’état temporaire d’un assistant peuvent tous être stockés sans problème. Ils sont de toute façon visibles par l’utilisateur, et leur divulgation ne permet pas de prendre le contrôle d’un compte.
localStorage.setItem("theme", "dark");
localStorage.setItem("sidebar:collapsed", "true");
localStorage.setItem("draft:post-123", draftMarkdown);Utilisez des cookies pour l’authentification
Fournissez l’authentification via Set-Cookie: token=...; HttpOnly; Secure; SameSite=Strict. L’attribut HttpOnly rend le cookie inaccessible à JavaScript, ce qui neutralise la plupart des charges utiles XSS qui dérobent des jetons, même si d’autres failles existent sur la page.
Mesures d’atténuation liées à l’utilisation du stockage
Si vous devez mettre en cache des données apparemment sensibles, limitez strictement leur portée (TTL court, effacement à la déconnexion, suppression à la fermeture de l’onglet via sessionStorage), appliquez une politique stricte de sécurité du contenu pour bloquer les scripts injectés et vérifiez chaque script tiers exécuté sur les pages authentifiées.
Vérification des connaissances
Pourquoi les jetons d’authentification stockés dans localStorage sont-ils considérés comme un risque de sécurité ?
Résumé
Web Storage est en texte brut, lisible par les scripts et partagé par origine. Ne placez jamais de jetons d’authentification, de mots de passe, de données de paiement ou d’informations personnelles réglementées à cet endroit. Conservez les secrets dans des cookies httpOnly et réservez localStorage à l’état inoffensif de l’interface utilisateur, que l’utilisateur pourrait de toute façon voir.
Apprends HTML avec un tuteur IA — gratuit
Écris et exécute du vrai code dans ton navigateur, obtiens de l'aide instantanée d'un tuteur IA disponible 24h/24, et reprends là où tu t'es arrêté sur le web ou dans l'app.
- Cours
- 40
- Leçons
- 159
Questions Fréquemment Posées
La leçon « Sécurité : ce qu’il ne faut jamais stocker » est-elle gratuite ?
Oui — le texte complet de « Sécurité : ce qu’il ne faut jamais stocker » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours HTML Academy, passe à CoddyKit PRO. Le cours HTML Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Sécurité : ce qu’il ne faut jamais stocker » ?
Évitez de stocker des jetons ou des PII dans `localStorage`. Tu pratiques HTML Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer HTML Academy ?
Aucune expérience préalable n'est requise. HTML Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.
Combien de temps prend la leçon « Sécurité : ce qu’il ne faut jamais stocker » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon HTML Academy ?
Oui. Chaque leçon HTML Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- `localStorage` ou `sessionStorage`
- Lire, définir et supprimer des éléments
- Écouter les événements de stockage
- Sécurité : ce qu’il ne faut jamais stocker