Maison  >  Article  >  développement back-end  >  Surmonter CSRF : stratégies de protection PHP infaillibles

Surmonter CSRF : stratégies de protection PHP infaillibles

王林
王林avant
2024-02-25 13:20:10996parcourir

2.1 Utilisation du jeton CSRF

L'éditeur PHP Zimo vous propose des stratégies de protection PHP pour surmonter les difficultés CSRF. CSRF (cross-site request forgery) est une méthode d'attaque réseau courante afin de prévenir efficacement de telles attaques, les développeurs PHP doivent prendre une série de mesures, telles que l'utilisation de jetons CSRF, la vérification du référent HTTP, la double confirmation et d'autres méthodes pour garantir. que le site Web Sécurité des données. Cet article présentera ces stratégies de protection en détail pour vous aider à établir un système de protection PHP infaillible pour protéger votre site Web de la menace d'attaques CSRF.

2.2 Utiliser l'en-tête de référence

Referer Header est un en-tête de requête Http qui contient l'URL de la source de la requête. Le serveur peut vérifier l'en-tête Referer pour déterminer si la demande provient d'une source légitime. Si le Referer Header n’existe pas ou pointe vers une source illégale, cela est considéré comme une attaque CSRF et la demande sera rejetée.

2.3 Utilisation du cookie SameSite

SameSite Cookie est un nouvel attribut de cookie qui peut être utilisé pour limiter la portée des cookies. Le cookie SameSite peut être défini sur « Strict », « Lax » ou « Aucun ». Le cookie sera envoyé sur les requêtes cross-site uniquement si le cookie SameSite est défini sur « Strict ».

2.4 Utilisation du mode de jeton de soumission double

Le mode jeton de double soumission est une méthode classique pour empêcher les attaques CSRF. En mode jeton à double soumission, le serveur génère un jeton aléatoire à chaque demande et stocke le jeton dans un champ de formulaire masqué. Lorsque l'utilisateur soumet le formulaire, le serveur vérifie si le token dans le champ masqué du formulaire est cohérent avec le token de la session. S'il est incohérent, il considère une attaque CSRF et rejette la requête.

3.Code démo

Ce qui suit est un morceau de code PHP qui utilise le jeton CSRF pour empêcher les attaques CSRF :

<?php
// 生成 CSRF Token
$csrf_token = bin2hex(random_bytes(32));

// 将 CSRF Token 存储在会话中
$_SESSioN["csrf_token"] = $csrf_token;
?>

<fORM action="submit.php" method="post">
<input type="hidden" name="csrf_token" value="<?php echo $csrf_token; ?>">
<!-- 表单其他字段 -->
<input type="submit" value="提交">
</form>

Dans le fichier submit.php, le Token CSRF peut être vérifié comme suit :

<?php
// 获取请求中的 CSRF Token
$csrf_token = $_POST["csrf_token"];

// 获取会话中的 CSRF Token
$session_csrf_token = $_SESSION["csrf_token"];

// 比较两个 CSRF Token
if ($csrf_token !== $session_csrf_token) {
// 认为是 CSRF 攻击,拒绝请求
die("CSRF attack detected!");
}

// 处理表单提交
// ...

4.Résumé

En utilisant le jeton CSRF, l'en-tête de référent, le cookie SameSite ou le mode jeton de soumission double, les développeurs PHP peuvent prévenir efficacement les attaques CSRF et protéger la sécurité des applications WEB.

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