Back-end · 4 mondes · 12 étapes
Auth & sécurité
Mots de passe, jetons signés, failles du web et autorisation, écrits de ses mains.
Progression
0 %
0/12 étapes terminées
Avancé · 12 min de lecture
La sécurité en production
HTTPS, secrets, dépendances et réponse aux incidents
1Définition
Au-delà du code, la sécurité d'une application tient à son environnement : le transport chiffré, la gestion des secrets, les dépendances tierces, les en-têtes de sécurité, la journalisation, et la capacité à réagir quand quelque chose fuit.
2Principes fondamentaux
01
HTTPS partout
Sans chiffrement du transport, mots de passe et jetons se lisent sur le réseau.
02
Les secrets hors du code
Variables d'environnement, coffre à secrets ; jamais dans le dépôt Git, qui garde tout son historique.
03
Surveiller les dépendances
Chaque paquet npm est du code d'un inconnu : npm audit, mises à jour régulières, et le moins de paquets possible.
04
Prévoir l'incident
Savoir révoquer les sessions, changer les secrets et prévenir les utilisateurs, avant d'en avoir besoin.
3Exemples pratiques
Des en-têtes de sécurité
1Strict-Transport-Security: max-age=31536000; includeSubDomains2Content-Security-Policy: default-src 'self'3X-Content-Type-Options: nosniff4Referrer-Policy: strict-origin-when-cross-originQuatre lignes qui ferment des familles entières d'attaques, sans toucher au code de l'application.
Un secret dans l'environnement
1// .env.local (jamais commité : il est dans .gitignore)2JETON_SECRET=8f3a9c…3 4// dans le code5const secret = process.env.JETON_SECRET;6if (!secret) throw new Error("JETON_SECRET manquant");Le code ne contient que le nom du secret ; sa valeur vit dans l'environnement de chaque déploiement.
4Erreurs courantes
Un secret commité
À éviter
const secret = "super-secret-123";À faire
process.env.JETON_SECRETPourquoi : L'historique Git le conserve même après suppression ; il faut alors le changer partout.
Des messages d'erreur bavards
À éviter
Error: relation "comptes" does not exist at …À faire
{ erreur: "Une erreur est survenue." }Pourquoi : La pile d'erreur décrit l'architecture à un attaquant.
5Subtilités à connaître
- ◆Un audit de sécurité externe trouve en quelques jours ce que l'équipe ne voit plus.
- ◆Le chiffrement des sauvegardes compte autant que celui de la base : une sauvegarde volée est une base volée.
- ◆Le RGPD impose de signaler certaines fuites de données personnelles dans les 72 heures.
6Techniques d'expert
Modéliser les menaces
Pour chaque fonctionnalité : qui voudrait en abuser, comment, et que perdrait-on ? Une heure de cette réflexion vaut des semaines de correctifs.
Les clés d'accès (passkeys)
WebAuthn remplace le mot de passe par une paire de clés liée à l'appareil : rien à voler en base, rien à hameçonner.
Vérifier les dépendances en continu
L'intégration continue peut bloquer une mise en production si une dépendance a une faille connue.
npm audit --audit-level=high7Sur le terrain
- La majorité des fuites de données viennent de configurations (bases ouvertes, secrets exposés), pas d'attaques sophistiquées.
- Le serveur prévu pour Sys-Code garde ses comptes chez lui (Better Auth et PostgreSQL) et vérifie la session et le rôle à chaque route qui écrit.
- Les programmes de « bug bounty » paient des chercheurs pour signaler les failles avant qu'elles ne soient exploitées.
8Vérifie ta compréhension
Question 1/3
Score 0
Où vit un secret de production ?
Envie d'essayer ? Ouvre le Labo et recopie les exemples pour les modifier.