Avec le développement rapide d'Internet, les codes de vérification SMS sont devenus une méthode de vérification de sécurité courante dans les sites Web ou les applications. Afin d'éviter que le code de vérification soit abusé, la définition de la période de validité du code de vérification est devenue une mesure importante pour protéger la confidentialité des utilisateurs et la sécurité des comptes. Cet article présentera comment utiliser PHP pour réaliser la vérification automatique de l'expiration des codes de vérification SMS pour garantir que le code de vérification est valide dans le délai spécifié.
Tout d'abord, nous devons concevoir une table de base de données pour stocker des informations liées aux codes de vérification, tels que les numéros de téléphone mobile, les codes de vérification, le temps de génération et le temps d'expiration. Voici une conception de structure de table simple:
Créer un tableau SMS_Verification (<br> id int (11) pas null auto_increment,<br> Téléphone Varchar (20) pas nul,<br> code varchar (6) pas nul,<br> générer_time int (11) pas nul,<br> Expiry_time int (11) pas nul,<br> Clé primaire (ID)<br> ) Moteur = innodb par défaut Charset = utf8;
Lorsqu'un utilisateur demande d'envoyer un code de vérification SMS, nous devons générer un code de vérification aléatoire et le stocker dans la base de données et enregistrer l'heure de génération et le temps d'expiration. Voici un exemple de code:
fonction SendsmsVerificationCode ($ téléphone) {<br> // générer un code de vérification aléatoire<br> $ code = rand (100000, 999999);<br> $ generateTime = time ();<br> $ expirytime = $ GenerateTime + 600; // Le code de validité est valide pendant 10 minutes<br><br> // Stockez les informations du code de vérification dans la base de données<br> $ sql = "INSERT IN SMS_VERIATION (Téléphone, Code, Generate_time, expiry_time) VALEUR ('$ Phone', '$ code', '$ GenerateTime', '$ expirytime')";<br> // Effectuer un fonctionnement d'insertion de la base de données (utilisez l'APD pour empêcher l'injection SQL)<br> // ...<br><br> // Envoie le code de vérification SMS<br> // ...<br><br> retourner $ code;<br> }
Lorsqu'un utilisateur soumet un code de vérification pour la vérification, nous devons nous assurer que le code de vérification est non seulement correct, mais n'est pas expiré. Ce qui suit est l'implémentation du code correspondant:
fonction VeriFysMerificationCode ($ phone, $ code) {<br> // interroge les informations du code de vérification dans la base de données<br> $ SQL = "SELECT * FROM SMS_VERIATION WHERE Phone = '$ Phone' Order by Generate_time Desc Limit 1";<br> // Effectuer des opérations de requête (utilisez l'OPD pour éviter l'injection SQL)<br> // ...<br><br> // Obtenez les résultats de la requête<br> $ VerificationInfo = $ stmt-> fetch (pDo :: fetch_assoc);<br><br> // Si les informations du code de vérification sont vides, le code de vérification n'est pas valide<br> if (! $ VerificationInfo) {<br> retourne false;<br> }<br><br> // Vérifiez si le code de vérification a expiré<br> if (time ()> $ VerificationInfo ['Expiry_time']) {<br> retourne false;<br> }<br><br> // Vérifiez si le code de vérification correspond<br> if ($ code! = $ VerificationInfo ['code']) {<br> retourne false;<br> }<br><br> // Vérification est adoptée, supprimez les informations du code de vérification<br> $ sql = "Supprimer de sms_verification où id = {$ vérificationInfo ['id']}";<br> // effectuer une opération de suppression<br> // ...<br><br> Retour Vrai;<br> }
Dans les applications pratiques, certaines situations anormales doivent être prises en compte. Par exemple, le fonctionnement de la base de données a échoué, l'échec de l'appel d'interface SMS, etc. En outre, afin d'améliorer la sécurité, des mécanismes tels que la limite de fréquence de transmission du code de vérification et le nombre d'erreurs de code de vérification peuvent être ajoutées.
La mise en œuvre de la vérification automatique de l'expiration des codes de vérification SMS via PHP est un moyen efficace d'améliorer la sécurité des applications. La conception raisonnable de la structure de la table de base de données et combinée avec une logique de code PHP appropriée peut garantir que le code de vérification est vérifié dans la période de validité et prévenir efficacement les abus. Grâce à ces mesures, la protection de la sécurité et de la confidentialité des comptes d'utilisateurs peut être améliorée.