Proteção CSRF

Proteção CSRF

Proteção contra Cross-Site Request Forgery com tokens por sessão.

Helpers

// Obter token
$token = csrf_token();

// Campo oculto para formulários
echo csrf_field();
// Gera: <input type="hidden" name="_token" value="...">

// Verificar (usa $_POST['_token'] automaticamente)
if (csrf_verify()) {
    // Token válido
}

// Verificar com token explícito
if (csrf_verify($token)) {
    // Token válido
}

// Regenerar token
csrf_regenerate();

Exemplo em Formulário

<form method="POST">
    <?= csrf_field() ?>
    <input type="text" name="nome">
    <button type="submit">Enviar</button>
</form>

No Controller

if (requestPOST()) {
    if (!csrf_verify()) {
        flash_set('error', 'CSRF inválido.');
        redirect('/formulario');
    }
    // Processar dados...
}