Secrets et protection des données
Les clés, les jetons et les données personnelles sont ce que les attaquants recherchent réellement. Protégez-les au repos, en transit et dans l'historique de vos sources.
Liste de contrôle
- Gardez les secrets hors du code et du client. Les clés d'API, les mots de passe de base de données et les secrets de signature doivent se trouver dans des variables d'environnement ou un gestionnaire de secrets, jamais codés en dur et jamais envoyés au navigateur. Les outils d'IA intègrent souvent des clés directement dans le code client ; recherchez dans votre bundle tout ce qui ressemble à une clé.
- Gardez les secrets hors de git. Ajoutez
.env,*.pemet*.keyà.gitignoreavant le premier commit. Tout ce qui a été commis est compromis, même supprimé plus tard, car cela reste dans l'historique. Faites-le tourner (rotation). - Chiffrez les données sensibles au repos. Utilisez un chiffrement authentifié (AES-256-GCM) pour les secrets stockés et les contenus sensibles des utilisateurs, avec la clé conservée en dehors de la base de données.
- Servez tout en TLS. Aucun HTTP en clair pour ce qui transporte un identifiant ou des données personnelles. Redirigez HTTP vers HTTPS et activez HSTS.
- Ne mettez jamais de secrets ni de données personnelles dans les URL. Les chaînes de requête finissent dans les journaux, l'historique du navigateur et l'en-tête Referer. Placez-les dans le corps de la requête.
- Ne renvoyez que le minimum. Un point d'accès de profil ou « moi » ne doit renvoyer que ce dont l'interface a besoin, jamais les hachages de mots de passe, les clés ou les indicateurs internes.
- Stockez les jetons hors de portée des scripts lorsque c'est possible. Un JWT dans
localStorageest lisible par n'importe quel script, donc une attaque XSS le vole. Un cookie httpOnly évite ce risque (au prix d'une gestion du CSRF). Dans les deux cas, une Content-Security-Policy stricte sert de filet de sécurité. Voir infrastructure. - Respectez les droits sur les données. Permettez aux utilisateurs d'exporter et de supprimer leurs données, et purgez-les selon un calendrier. C'est à la fois une bonne pratique et, pour beaucoup, une obligation légale.
Comment tester
- Ouvrez l'onglet réseau des outils de développement du navigateur et le bundle JS ; recherchez
sk-,eyJ,password,secret,key. - Analysez le dépôt et son historique avec un scanner de secrets.
- Appelez votre point d'accès « moi » et lisez chaque champ qu'il renvoie.