Maison  >  Article  >  cadre php  >  Comment thinkphp implémente le code de vérification de séparation front-end et back-end

Comment thinkphp implémente le code de vérification de séparation front-end et back-end

PHPz
PHPzavant
2023-05-31 20:18:531393parcourir

1. Le rôle du code de vérification

À l'ère d'Internet, nous utilisons souvent des codes de vérification pour renforcer la sécurité. La mise en œuvre de la fonction de code de vérification peut nous aider à :

  1. Prévenir les attaques de robots : le code de vérification peut détecter s'il s'agit d'une opération humaine afin de réduire les attaques de robots malveillants et de pirates informatiques.

  2. Amélioration de la sécurité : les codes de vérification peuvent renforcer le contrôle des autorisations, garantir l'authenticité des identités des utilisateurs et protéger les serveurs et les sites Web contre les attaques inutiles.

  3. Améliorez l'expérience utilisateur : les codes de vérification peuvent efficacement empêcher les utilisateurs de perdre leur intérêt en raison de caractères illisibles continus.

2. Implémentation du code de vérification frontal

Dans le processus d'implémentation frontale du code de vérification, nous avons besoin des étapes principales suivantes :

  1. Déterminer le type de code de vérification : le code de vérification est généralement divisé en code de vérification des caractères et code de vérification graphique. Concevez en gardant à l’esprit l’expérience utilisateur et la sécurité.

  2. Générer un code de vérification sur la page frontale : utilisez Canvas ou une autre technologie pour générer un code de vérification sur la page frontale. Il est possible d'utiliser l'élément HTML5 Canvas pour personnaliser la police, la taille et la couleur du code de vérification.

  3. Généralement, nous devons vérifier si la saisie de l'utilisateur correspond au code de vérification généré par le serveur. Grâce aux technologies JavaScript et Ajax, nous sommes en mesure d'obtenir les commentaires des utilisateurs et de les envoyer côté serveur.

  4. Code de vérification : vérifiez les entrées de l'utilisateur côté serveur. Si une interface API est fournie, l'interface renverra les informations de réussite ou d'échec de la vérification au client.

En utilisant ces technologies, les utilisateurs peuvent obtenir des codes de vérification à la réception pour éviter les accès malveillants ou les attaques automatisées.

3. Implémentation du code de vérification back-end

Pour implémenter le code de vérification dans thinkphp, nous nous concentrons généralement sur les aspects suivants :

  1. Créer un contrôleur de code de vérification

Contrôler la génération et la vérification du code de vérification Pour d'autres opérations, vous pouvez placer le contrôleur de code de vérification dans le répertoire d'arrière-plan. Dans le contrôleur, les méthodes suivantes sont généralement incluses :

  • generateCode : génère un code de vérification et stocke le code de vérification dans la Session.

  • verifyCode : Vérifiez si le code de vérification saisi par l'utilisateur est correct.

  • getCode : renvoie le code de vérification stocké dans la session.

  1. Générer le code de vérification

Lors de la génération du code de vérification, nous pouvons utiliser la bibliothèque GD pour générer l'image, puis envoyer le résultat du code de vérification au client en sortant l'image et en enregistrant l'image . Voici un exemple de code :

public function generateCode($width=80,$height=22,$verifyName=''){
    //生成一个4位的随机字符串
    $code = '';
    $chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
    for($i=0;$i<4;$i++){
        $code .= substr($chars, mt_rand(0, strlen($chars) - 1), 1);
    }
    //将验证码存储到session中
    if($verifyName){
        session($verifyName, $code);
    }else{
        session(&#39;verify_code&#39;, $code);
    }

    //生成验证码图像
    $img = imagecreate($width,$height);
    //背景色
    imagecolorallocate($img, 102,102,102);
    //字体颜色
    $color = imagecolorallocate($img, 255, 255, 255);
    //生成干扰线
    for($i=0;$i<5;$i++){
        imageline($img,mt_rand(0,$width/2),mt_rand(0,$height/2),mt_rand($width/2,$width),mt_rand($height/2,$height),$color);
    }
    //将验证码绘制到图像上
    imagefttext($img, 18, 0, 10, $height-5, $color, &#39;./arial.ttf&#39;, $code);
    //输出图像
    header(&#39;Pragma:no-cache&#39;);
    header(&#39;Cache-Control:no-cache&#39;);
    header("content-type:image/png");
    imagepng($img);
    imagedestroy($img);
}
  1. Vérifier le code de vérification

Nous obtenons généralement le code de vérification saisi par l'utilisateur, puis trouvons la valeur du code de vérification correspondante dans la session pour vérification. Lorsque la valeur du code de vérification stockée dans la session est la même que la valeur saisie par l'utilisateur, la vérification du code de vérification est réussie.

// 验证码验证
if(empty($verify)) {
    $this->error(&#39;验证码不能为空!&#39;);
}
if($verify != session(&#39;verify_code&#39;)){
    $this->error("验证码错误!");
}

4. Avantages de la mise en œuvre du code de vérification de la séparation front-end et back-end

La séparation front-end et back-end permet aux développeurs back-end de se concentrer sur le traitement des données et les activités logiques, ainsi que sur les développeurs front-end. peut se concentrer sur le développement de l'expérience utilisateur et des méthodes d'interaction. En utilisant la séparation front-end et back-end, la sécurité des sites Web et des applications Web peut être améliorée, et des codes de vérification peuvent être appliqués pour bloquer efficacement les accès automatisés malveillants et les attaques.

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