Comment gérer la falsification de requêtes intersites dans le développement PHP
Introduction : Avec le développement rapide d'Internet, les problèmes de sécurité des sites Web sont devenus de plus en plus importants. L’un d’eux est le problème de la falsification de requêtes intersites (CSRF). Cet article explique comment gérer efficacement les attaques CSRF dans le développement PHP et fournit des exemples de code spécifiques.
L'exemple de code est le suivant :
// 在用户登录时生成Token,并存储在Session中 session_start(); if (!isset($_SESSION['csrf_token'])) { $_SESSION['csrf_token'] = bin2hex(random_bytes(32)); } // 将Token添加到表单中 <input type="hidden" name="csrf_token" value="<?php echo $_SESSION['csrf_token']; ?>"> // 在服务器端验证Token session_start(); if ($_SERVER['REQUEST_METHOD'] === 'POST') { if (!hash_equals($_SESSION['csrf_token'], $_POST['csrf_token'])) { die('CSRF攻击检测'); } }
(2) Définissez l'attribut SameSite Cookie
Dans les derniers navigateurs, l'attribut SameSite du cookie peut être défini pour empêcher les attaques CSRF. La valeur de l'attribut SameSite peut être définie sur Strict, Lax ou Aucun. Strict signifie que les cookies ne peuvent être envoyés que lorsqu'une demande est faite à partir du même site, tandis que Lax signifie que l'envoi de cookies est autorisé dans certaines circonstances (comme cliquer sur un lien depuis un site Web externe). Aucun signifie que le cookie peut être envoyé en toutes circonstances, ce qui peut entraîner des problèmes de sécurité.
L'exemple de code est le suivant :
setcookie('session_id', session_id(), [ 'expires' => 0, 'path' => '/', 'domain' => 'your_domain.com', 'secure' => true, // 只能通过HTTPS发送 'httponly' => true, // 无法通过JavaScript访问 'samesite' => 'Strict' ]);
(2) Mettre à jour les frameworks et les bibliothèques back-end en temps opportun
La mise à jour fréquente des versions des frameworks et des bibliothèques back-end peut maintenir la sécurité du code et empêcher les vulnérabilités de sécurité connues d'être exploitées par des attaquants.
(3) Contrôle raisonnable des autorisations
Accordez à chaque utilisateur des autorisations minimales pour empêcher les utilisateurs d'opérer au-delà de leur autorité.
Conclusion : la falsification de requêtes intersites (CSRF) est un problème courant de sécurité réseau. En générant aléatoirement un jeton et en définissant les attributs du cookie SameSite, nous pouvons prévenir efficacement les attaques CSRF. Dans le même temps, le maintien de la sécurité du code et un contrôle raisonnable des autorisations sont également des mesures importantes pour prévenir les attaques CSRF.
Nombre total de mots : 714 mots
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!