CSRF: Cross-Site Request Forgery

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");
}

Hai trovato utile quest'articolo?

  • Introduzione a PHP

    PHP (PHP: Hypertext Preprocessor) è un linguaggio di scripting server-side usato per lo sviluppo web...
  • Variabili PHP

    Le variabili in PHP iniziano sempre con il simbolo dollaro $.Dichiarazione$nome = "Mario"; $eta = 30...
  • Stringhe in PHP

    Le stringhe sono sequenze di caratteri racchiuse tra virgolette.Virgolette singole vs doppie$nome = ...
  • Array in PHP

    Gli array permettono di memorizzare più valori in una singola variabile.Array indicizzati$frutti = [...
  • Operatori PHP

    Gli operatori PHP permettono di eseguire operazioni su variabili e valori.Operatori aritmetici$a + $...