Maison > développement back-end > Problème PHP > À quoi devez-vous faire attention lorsque les utilisateurs php se connectent ?

À quoi devez-vous faire attention lorsque les utilisateurs php se connectent ?

(*-*)浩
Libérer: 2023-02-24 06:40:01
original
2357 Les gens l'ont consulté

À quoi les utilisateurs PHP doivent-ils faire attention lorsqu'ils se connectent ?

À quoi devez-vous faire attention lorsque les utilisateurs php se connectent ?

Le mot de passe doit être crypté à l'aide de MD5 (mot de passe + chaîne).

Ne nommez pas le formulaire de connexion de la même manière que le champ de la base de données pour éviter d'exposer les champs de la table.

Le nom de la table, le nom du champ et le mot de passe de la table utilisateur devraient être difficiles à deviner.

Utilisez le code de vérification pour vérifier la connexion afin d'éviter le craquage par force brute.

Vérifiez si les données soumises proviennent de ce site Web. (Apprentissage recommandé : Programmation PHP de l'entrée à la maîtrise)

La partie base de données du code de traitement en arrière-plan de connexion utilise un prétraitement et un filtrage pour empêcher l'injection SQL.

Par exemple : il doit gérer l'authentification, confirmer l'e-mail, mettre à jour le compte (mot de passe, e-mail) et d'autres choses.

<?php
     function user_change_email ($password1,$new_email,$user_name) {
      global $feedback,$hidden_hash_var;
      if (validate_email($new_email)) {
        $hash=md5($new_email.$hidden_hash_var);
        file://改变数据库中确认用的无序码值,但不改变email
       file://发出一个带有新认证码的确认email
        $user_name=strtolower($user_name);
        $password1=strtolower($password1);
        $sql="UPDATE user SET confirm_hash=&#39;$hash&#39; WHERE user_name=&#39;$user_name&#39; AND password=&#39;". md5($password1) ."&#39;";
        $result=db_query($sql);
        if (!$result || db_affected_rows($result) < 1) {
         $feedback .= &#39; ERROR - Incorrect User Name Or Password &#39;;
         return false;
         } else {
          $feedback .= &#39; Confirmation Sent &#39;;
          user_send_confirm_email($new_email,$hash);
          return true;
          }
        } else {
          $feedback .= &#39; New Email Address Appears Invalid &#39;;
          return false;
         }
        }
     function user_confirm($hash,$email) {
       /*
        用户点击认证email的相关连接时,连到一个确认的页面,该页面会调用这个函数,
       */
      global $feedback,$hidden_hash_var;
       file://verify that they didn&#39;t tamper with the email address
       $new_hash=md5($email.$hidden_hash_var);
       if ($new_hash && ($new_hash==$hash)) {
         file://在数据库中找出这个记录
         $sql="SELECT * FROM user WHERE confirm_hash=&#39;$hash&#39;";
         $result=db_query($sql);
         if (!$result || db_numrows($result) < 1) {
           $feedback .= &#39; ERROR - Hash Not Found &#39;;
           return false;
         } else {
           file://确认email,并且设置帐号为已经激活
           $feedback .= &#39; User Account Updated - You Are Now Logged In &#39;;
           user_set_tokens(db_result($result,0,&#39;user_name&#39;));
           $sql="UPDATE user SET email=&#39;$email&#39;,is_confirmed=&#39;1&#39; WHERE confirm_hash=&#39;$hash&#39;";
           $result=db_query($sql);
           return true;
          }
         } else {
          $feedback .= &#39; HASH INVALID - UPDATE FAILED &#39;;
          return false;
         }
        }
     function user_send_confirm_email($email,$hash) {
       /*
        这个函数在首次注册或者改变email地址时使用
       */
        $message = "Thank You For Registering at Company.com".
        "
Simply follow this link to confirm your registration: ".
       "
http://www.company.com/account/confirm.php?hash=$hash&email=". urlencode($email). "
Once you confirm, you can use the services on PHPBuilder.";
mail ($email,&#39;Registration Confirmation&#39;,$message,&#39;From: noreply@company.com&#39;);
      }
     ?>
Copier après la connexion

Peut-être que nous n'utilisons pas cette méthode pour l'authentification des utilisateurs, mais la session et d'autres méthodes, mais cet article nous éclaire quand même sur la façon de chiffrer et de confirmer.

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!

Étiquettes associées:
php
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal