Position actuelle: Accueil> Derniers articles> Meilleures pratiques pour empêcher les utilisateurs malveillants de se connecter et de s'inscrire avec la vérification de la boîte aux lettres PHP

Meilleures pratiques pour empêcher les utilisateurs malveillants de se connecter et de s'inscrire avec la vérification de la boîte aux lettres PHP

M66 2025-06-29

Utilisez la vérification des boîtes aux lettres dans PHP pour empêcher les utilisateurs malveillants de se connecter et de s'inscrire

Avec la popularité d'Internet, les fonctions de connexion et d'enregistrement des utilisateurs sont devenues un composant standard de la plupart des sites Web et applications. Cependant, avec l'augmentation des utilisateurs malveillants, comment garantir l'authenticité des utilisateurs et prévenir l'enregistrement des comptes de spam est devenu un problème important. La vérification par e-mail est une méthode de vérification courante qui peut effectivement empêcher les utilisateurs malveillants de s'inscrire et de se connecter.

Créer une table de base de données

Tout d'abord, nous devons créer une table dans la base de données pour stocker les informations de la boîte aux lettres de l'utilisateur. Voici une simple structure de table de base de données:

 CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    email VARCHAR(255) NOT NULL,
    verification_code VARCHAR(255) NOT NULL,
    is_verified TINYINT(1) DEFAULT 0
);

Dans ce tableau, nous stockons l'ID de l'utilisateur, le courrier électronique, le code de vérification et l'état de vérification. Lorsque l'utilisateur enregistre, le système générera un code de vérification et l'enverra à l'adresse e-mail de l'utilisateur.

Mettre en œuvre la fonction d'enregistrement

Lors de la mise en œuvre de la fonction d'enregistrement de l'utilisateur, les étapes suivantes sont requises:

  • Vérifiez que l'adresse e-mail saisie par l'utilisateur est valide.
  • Vérifiez si l'adresse e-mail a été enregistrée.
  • Générez le code de vérification et stockez-le dans la base de données.
  • Envoyez le code de vérification à l'adresse e-mail de l'utilisateur.

Voici un exemple de code pour la fonction d'enregistrement PHP:

 <?php
// Obtenez l&#39;adresse e-mail saisie par l&#39;utilisateur
$email = $_POST['email'];

// Vérifiez si le format de messagerie est valide
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
    echo 'Adresse e-mail non valide';
    exit;
}

// Vérifiez si l&#39;e-mail est enregistré
$existingUser = $db->query("SELECT * FROM users WHERE email = '$email'")->fetch(PDO::FETCH_ASSOC);
if ($existingUser) {
    echo 'Cet e-mail a été enregistré';
    exit;
}

// Générer du code de vérification
$verificationCode = md5(uniqid(rand(), true));

// Enregistrer le code de vérification dans la base de données
$db->query("INSERT INTO users (email, verification_code) VALUES ('$email', '$verificationCode')");

// Envoyer le code de vérification à l&#39;e-mail de l&#39;utilisateur
$subject = 'Vérification par e-mail';
$message = 'Votre code de vérification est:' . $verificationCode;
$headers = 'From: noreply@example.com';
mail($email, $subject, $message, $headers);

echo 'Veuillez vérifier votre e-mail et saisir le code de vérification pour vérifier';
?>

Dans ce code, nous utilisons la fonction Filter_var () de PHP pour vérifier le format de la boîte aux lettres et cocher si la boîte aux lettres a été enregistrée. Si l'adresse e-mail est valide et qu'il n'y a pas d'enregistrement d'enregistrement, le système générera un code de vérification et l'enregistrera dans la base de données, et utilisera la fonction Mail () pour envoyer le code de vérification à l'utilisateur.

Fonction de vérification

Une fois que l'utilisateur a reçu le code de vérification, il doit entrer le code de vérification pour vérification. Voici les étapes pour implémenter la fonction de vérification:

  • Obtenez le code de vérification entré par l'utilisateur.
  • Vérifiez si le code de vérification correspond aux stocks dans la base de données.
  • Mettez à jour l'état de vérification de l'utilisateur.

Ce qui suit est l'exemple de code pour la vérification du code de vérification PHP:

 <?php
// Obtenez le code de vérification entré par l&#39;utilisateur
$verificationCode = $_POST['verification_code'];

// Vérifiez si le code de vérification est cohérent
$existingUser = $db->query("SELECT * FROM users WHERE verification_code = '$verificationCode'")->fetch(PDO::FETCH_ASSOC);
if (!$existingUser) {
    echo 'Le code de vérification est incorrect';
    exit;
}

// Mettre à jour l&#39;état de vérification des utilisateurs
$db->query("UPDATE users SET is_verified = 1 WHERE verification_code = '$verificationCode'");

echo 'Vous avez réussi à vérifier votre adresse e-mail';
?>

Dans ce code, nous interrogeons la base de données et trouvons des enregistrements qui correspondent au code de vérification entré par l'utilisateur. Si une correspondance est trouvée, l'état de vérification de l'utilisateur est mis à jour pour vérifier.

Résumer

Grâce aux étapes ci-dessus, nous avons implémenté un simple système de vérification de la boîte aux lettres pour empêcher efficacement les utilisateurs malveillants de se connecter et de s'inscrire. Dans les projets réels, vous pouvez combiner davantage de mesures de sécurité, telles que les exigences de résistance au mot de passe, les restrictions IP et la vérification multi-facteurs, pour améliorer encore la sécurité.

La vérification par e-mail peut non seulement améliorer l'authenticité de l'enregistrement des utilisateurs, mais également augmenter la sécurité du site Web. J'espère que cet article vous aidera à comprendre comment implémenter la vérification des boîtes aux lettres dans PHP pour empêcher les utilisateurs malveillants de vous connecter et de s'inscrire.