Maison  >  Article  >  développement back-end  >  Comment ajouter un mécanisme de vérification de jeton sous forme PHP

Comment ajouter un mécanisme de vérification de jeton sous forme PHP

王林
王林original
2023-06-24 16:54:071077parcourir

Dans le développement Web, les formulaires sont un canal de communication important entre les utilisateurs et les serveurs. Pour garantir la sécurité, nous devons ajouter un mécanisme de vérification des jetons lors de la soumission du formulaire afin d'éviter les attaques d'attaquants malveillants.

Le principe de base de la vérification du Token est le suivant : le serveur génère un nombre aléatoire et transmet le Token au client en ajoutant un champ caché dans le formulaire. Lorsque le client soumet le formulaire, le Token est renvoyé au serveur. vérifie l'exactitude du jeton. S'il correspond, autorisez la soumission du formulaire, sinon rejetez la soumission.

Ci-dessous, nous présenterons comment implémenter le mécanisme de vérification des jetons en PHP.

  1. Ajouter un champ caché dans le formulaire

Nous pouvons utiliser la fonction rand() de PHP pour générer un nombre aléatoire sous forme de jeton, puis ajouter le jeton au champ caché dans le formulaire.

<?php
$token = rand(); //生成随机数作为Token
?>
<form action="submit.php" method="post">
  <input type="hidden" name="token" value="<?php echo $token; ?>">
  <!-- 其他表单元素 -->
  <button type="submit">提交</button>
</form>

    Verify Token
Une fois le formulaire soumis, nous devons vérifier si le jeton du formulaire est correct. Nous pouvons stocker le jeton dans la session du serveur et comparer le jeton soumis par le formulaire avec le jeton stocké dans la session. Le code est le suivant :

<?php
session_start(); // 开启session
$token = $_POST['token']; //获取表单提交的Token值
if ($token === $_SESSION['token']) { //判断Token是否匹配
  // ... 其他操作
} else {
  echo 'Token验证失败';
}
?>

Remarque : après chaque soumission et vérification réussie du formulaire, nous devons régénérer un jeton. nouveau Token et mettez à jour la valeur du Token stockée dans la session. Cela évite les soumissions répétées de formulaires et les attaques malveillantes.

<?php
session_start(); // 开启session

// 验证Token
if ($_POST['token'] !== $_SESSION['token']) {
  die('Token验证失败');
}

// 更新Token
$_SESSION['token'] = rand();
// ... 其他操作
?>

De cette façon, nous avons ajouté avec succès le mécanisme de vérification des jetons au formulaire PHP et amélioré la sécurité du site 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:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn