Documentation · Chapitre 08

Sécuriser une application
par plusieurs couches.

La sécurité ne consiste pas à ajouter une fonction à la fin. Elle influence la manière de recevoir, traiter, stocker et afficher chaque donnée.

Nous sécurisons reading-list par couches, sans prétendre qu’une seule option suffit.

≈ 85 min

Une serrure ne protège pas toute une maison.

La porte, les fenêtres, l’alarme et les habitudes des habitants remplissent des rôles différents. Sur le Web, validation, échappement, CSRF, sessions, en-têtes et limitation de débit forment eux aussi des couches complémentaires.

Quatre questions avant chaque fonction

Qui agit ?

Visiteur anonyme, utilisateur connecté ou administrateur ?

Que reçoit-on ?

Les données ont-elles le type, la taille et la forme attendus ?

Que modifie-t-on ?

Cette action exige-t-elle identité, autorisation et CSRF ?

Que révèle-t-on ?

La réponse ou le journal expose-t-il un secret interne ?

Menace et protection ne sont pas synonymes

XSSéchappement + CSP
CSRFjeton de formulaire + session
Injection SQLparamètres PDO / DbSet
Vol de sessionHTTPS + HttpOnly + Secure + SameSite
Abus automatisélimitation + authentification + surveillance

VOCABULAIRE

Les mots à retenir

MenaceÉvénement capable de causer un dommage.
VulnérabilitéFaiblesse qu’une menace peut exploiter.
AuthentificationVérifier qui est la personne.
AutorisationDécider ce qu’elle peut faire.

EN RÉSUMÉ

Ce qu’il faut retenir

  • La sécurité repose sur plusieurs couches.
  • Authentification et autorisation sont différentes.
  • Les entrées sont validées; les sorties sont échappées.
  • Les erreurs publiques ne révèlent pas les détails internes.