Maison >développement back-end >tutoriel php >Comprendre les menaces et prendre le contrôle : l'art de la prévention PHP contre la falsification de requêtes intersites (CSRF)

Comprendre les menaces et prendre le contrôle : l'art de la prévention PHP contre la falsification de requêtes intersites (CSRF)

WBOY
WBOYavant
2024-02-25 13:04:30855parcourir

1. Principe de l'attaque CSRF

L'éditeur PHP Zimo vous emmène dans l'art de la prévention contre la falsification de requêtes intersites PHP (CSRF). Les attaques CSRF sont l'une des menaces de sécurité réseau qui effectuent des opérations malveillantes en déguisant les demandes des utilisateurs. Il est crucial de comprendre comment identifier et prévenir les attaques CSRF. Apprenons ensemble comment mieux comprendre les menaces potentielles, maîtriser les contrôles mondiaux et assurer la sécurité des sites Web.

2. Comment prévenir les attaques CSRF

2.1 Utilisation des jetons de formulaire

Les jetons de formulaire sont une simple mesure de prévention CSRF. Incluez un jeton généré aléatoirement dans chaque formulaire et validez ce jeton du côté du serveur. Si les jetons ne correspondent pas, la demande est rejetée.

2.2 Utilisation du jeton de synchronisation

Les jetons de synchronisation sont similaires aux jetons de formulaire, mais ils sont plus sécurisés. Une copie du jeton de synchronisation est stockée côté client et côté serveur et comparée à chaque requête. Si les jetons ne correspondent pas, la demande est rejetée.

2.3 Utilisation du jeton anti-CSRF

Le jeton Anti-CSRF est une mesure de prévention CSRF plus avancée. Il utilise le champ Referer dans l'en-tête de la requête Http pour vérifier la source de la requête. Si le champ Référent ne correspond pas, la demande est rejetée.

2.4 Autres mesures de précaution

En plus des méthodes ci-dessus, il existe d'autres mesures pour prévenir les attaques CSRF, notamment :

  • Activer le protocole HTTP Strict Transport Security (HSTS)
  • Utiliser la politique de sécurité du contenu (CSP)
  • Utilisez le partage de ressources multi-origines (CORS)

3.Code démo

Voici un exemple de code qui montre comment utiliser les jetons de formulaire pour se protéger contre les attaques CSRF :

<?PHP
session_start();

// 生成随机令牌
$token = bin2hex(random_bytes(16));

// 将令牌存储到会话中
$_SESSION["csrf_token"] = $token;
?>

<fORM action="process.php" method="post">
<input type="hidden" name="csrf_token" value="<?php echo $token; ?>">
<input type="text" name="username">
<input type="passWord" name="password">
<input type="submit" value="Login">
</form>

<?php
// 处理表单
if (isset($_POST["csrf_token"]) && $_POST["csrf_token"] === $_SESSION["csrf_token"]) {
// 表单已验证,可以安全地处理数据
} else {
// 表单未验证,拒绝请求
echo "Invalid CSRF token.";
}
?>

4.Conclusion

Les attaques CSRF constituent une menace sérieuse, mais elle peut être évitée en prenant les précautions appropriées. En utilisant des jetons de formulaire, des jetons de synchronisation, des jetons anti-CSRF et d'autres défenses, les développeurs peuvent protéger leurs sites contre les attaques CSRF.

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer