CSRF (Cross-Site Request Forgery)
PHP 🟡 MidDefinition
Attaque qui force un utilisateur authentifie a executer des actions non voulues sur un site ou il est connecte, via un lien ou formulaire piege.
Analogie
Comme quelqu'un qui imite ta signature pour envoyer une lettre en ton nom.
Exemple de code
// Generation du token
$_SESSION['csrf'] = bin2hex(random_bytes(32));
echo '<input type="hidden" name="csrf" value="'
. $_SESSION['csrf'] . '">';
// Verification
if (!hash_equals($_SESSION['csrf'], $_POST['csrf']))
throw new SecurityException();
Cas d'usage
Sur tout formulaire ou action modifiant des donnees (POST, PUT, DELETE).
Anti-pattern
Proteger seulement la page de login et oublier les autres formulaires sensibles.