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é

Exemple
1Strict-Transport-Security: max-age=31536000; includeSubDomains2Content-Security-Policy: default-src 'self'3X-Content-Type-Options: nosniff4Referrer-Policy: strict-origin-when-cross-origin

Quatre lignes qui ferment des familles entières d'attaques, sans toucher au code de l'application.

Un secret dans l'environnement

Exemple
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_SECRET

Pourquoi : 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=high

7Sur 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.