Gli attacchi CSRF forzano azioni non autorizzate. Proteggiti con i token.
Generare token CSRF
session_start();
function generateCsrfToken() {
if (empty($_SESSION["csrf_token"])) {
$_SESSION["csrf_token"] = bin2hex(random_bytes(32));
}
return $_SESSION["csrf_token"];
}Nel form HTML
<form method="POST">
<input type="hidden" name="csrf_token" value="<?= generateCsrfToken() ?>">
<!-- altri campi -->
<button>Invia</button>
</form>Verifica token
function verifyCsrfToken($token) {
return isset($_SESSION["csrf_token"]) &&
hash_equals($_SESSION["csrf_token"], $token);
}
if (!$_POST || !verifyCsrfToken($_POST["csrf_token"])) {
die("Token CSRF non valido");
}