Explorer
KNOW-ANT-004

Anti-Pattern : Désactiver la protection CSRF

Domaine
cybersecu
Type
anti-pattern
Priorité
P2

Parent : [[INDEX-CYBERSECU]]

Anti-Pattern : Désactiver la protection CSRF

Description

Désactiver la protection CSRF (csrf_protection = FALSE) dans CodeIgniter ou tout framework expose l'application aux attaques Cross-Site Request Forgery. Un attaquant peut forcer un utilisateur authentifié à exécuter des actions non désirées.

Exemple réel - Archive Ygg

// config.php — CodeIgniter YggTorrent
$config['csrf_protection'] = FALSE;  // ❌ DANGER
$config['csrf_token_name'] = 'csrf_test_name';  // ❌ Nom prévisible
$config['csrf_cookie_name'] = 'csrf_cookie_name';  // ❌ Nom prévisible

Conséquences

  • Hijacking de compte : changement d'email/mot de passe forcé
  • Transactions forcées : donations, paiements non voulus
  • Destruction de données : suppression de torrents, comptes
  • Élévation de privilèges : ajout d'administrateurs

Quand c'est acceptable

JAMAIS en production. En développement local uniquement, et temporairement.

Solution

Activer CSRF avec tokens forts et régénération :

$config['csrf_protection'] = TRUE;
$config['csrf_token_name'] = 'csrf_' . bin2hex(random_bytes(8));
$config['csrf_cookie_name'] = 'csrf_cookie_' . bin2hex(random_bytes(8));
$config['csrf_expire'] = 7200;
$config['csrf_regenerate'] = TRUE;

Références

  • Archive Ygg : 02_SERVEUR_PRE_PROD/sessions/ci_sessions/config.php
  • OWASP : CSRF Prevention
  • CWE-352 : Cross-Site Request Forgery