Sécurité

La sécurité n'est pas une option. River intègre nativement plusieurs couches de protection.

Protection CSRF

Cross-Site Request Forgery. River génère et valide automatiquement les tokens pour les requêtes POST, PUT, DELETE.

Dans vos formulaires

Utilisez l'injection du service Csrf :

// Contrôleur
$token_field = $this->csrf->field(); // <input type="hidden"...>

// Vue
<form method="POST">
    <?= $csrf_field ?>
    ...
</form>

Sanitizer

Nettoyez les entrées utilisateur pour prévenir les failles XSS.

use River\Sanitizer;

$email = Sanitizer::email($_POST['email']);
$comment = Sanitizer::clean($_POST['comment']); // Échappe le HTML
$slug = Sanitizer::slug('Mon Titre !'); // mon-titre

Rate Limiting

Protégez vos routes sensibles (login) contre le brute-force.

// Limite globale (config.php : rate_limit.requests / rate_limit.window)
$router->post('login', 'AuthController::login')
       ->middleware(River\Middleware\Rate_limit_middleware::class);

// Limite par route : 5 tentatives sur 300 secondes
$router->post('login', 'AuthController::login')
       ->middleware(River\Middleware\Rate_limit_middleware::class . ':5,300');

Sans paramètres : utilise la config globale (défaut 60 req/min). Avec :requests,window : surcharge pour cette route uniquement.

Headers de Sécurité

River ajoute automatiquement :