* * Usage en debut de traitement POST : * require_csrf_token(); */ declare(strict_types=1); function csrf_token(): string { if (empty($_SESSION['csrf_token'])) { $_SESSION['csrf_token'] = bin2hex(random_bytes(32)); } return $_SESSION['csrf_token']; } function csrf_field(): string { return ''; } /** * A appeler en tout debut de bloc `if ($_SERVER['REQUEST_METHOD'] === 'POST')`. * Coupe la requete avec un 403 si le jeton est absent ou invalide. */ function require_csrf_token(): void { $submitted = $_POST['csrf_token'] ?? ''; $expected = $_SESSION['csrf_token'] ?? ''; if ($expected === '' || !hash_equals($expected, $submitted)) { http_response_code(403); die('Requete invalide (jeton CSRF manquant ou incorrect). Rechargez la page et reessayez.'); } }