現在の位置: ホーム> 最新記事一覧> PHPにSMS検証コードの自動有効期限検証関数を実装する方法

PHPにSMS検証コードの自動有効期限検証関数を実装する方法

M66 2025-07-12

PHPは、SMS検証コードの自動有効期限検証を実現します

インターネットの急速な発展により、SMS検証コードは、ウェブサイトまたはアプリケーションで一般的なセキュリティ検証方法になりました。検証コードが乱用されるのを防ぐために、検証コードの有効期間を設定することは、ユーザーのプライバシーとアカウントのセキュリティを保護するための重要な尺度になりました。この記事では、PHPを使用してSMS検証コードの自動有効期限検証を実現する方法を紹介し、特定の時間内に検証コードが有効であることを確認します。

データベーステーブル構造を設計します

まず、データベーステーブルを設計して、携帯電話番号、検証コード、生成時間、有効期限などの確認コードに関連する情報を保存する必要があります。これがシンプルなテーブル構造のデザインです:

テーブルSMS_VERIFICITION(<br> id int(11)null auto_incrementではない、<br> 電話varchar(20)nullではなく、<br> コードvarchar(6)nullではありません、<br> Generate_time int(11)null、null、<br> expiry_time int(11)nullではありません、<br> ホストキー(ID)<br> )Engine = InnoDBデフォルトcharset = utf8;

SMS検証コードを生成および送信します

ユーザーがSMS検証コードの送信を要求した場合、ランダム検証コードを生成してデータベースに保存し、生成時間と有効期限を記録する必要があります。これがサンプルコードです:

 function sendsmsverificationcode($ phone){<br> //ランダム検証コードを生成するします<br> $ code = rand(100000、999999);<br> $ generateTime = time();<br> $ expirytime = $ generatetime + 600; //有効性コードは10分間有効です<br><br> //検証コード情報をデータベースに保存します<br> $ sql = "sms_verification(電話、code、generate_time、expiry_time)値( &#39;$ phone&#39;、 &#39;$ code&#39;、 &#39;$ generateTime&#39;、 &#39;$ expirytime&#39;)");<br> //データベース挿入動作しますを実行します(PDOを使用してSQLインジェクションを守るぎます)<br> // ...<br><br> // SMS検証コードを送信します<br> // ...<br><br> $ codeを戻るします。<br> }

SMS検証コードを確認します

ユーザーが検証のために検証コードを提出する場合、検証コードが正しいだけでなく、有効期限が切れないことを確認する必要があります。以下は、対応するコードの実装です。

 function verifysmsverificationCode($ phone、$ code){<br> //データベースの検証コード情報を照会します<br> $ sql = "select * from sms_verification where phone = &#39;$ phone&#39; generate_time desc limit 1";<br> //クエリ動作しますを実行します(PDOを使用してSQL注射を守るぐ)<br> // ...<br><br> //クエリの結果を得るします<br> $ visificationinfo = $ stmt-> fetch(pdo :: fetch_assoc);<br><br> //検証コード情報がヌルの場合、検証コードが無効です<br> if(!$ visificationinfo){<br> falseを戻るします。<br> }<br><br> //検証コードの有効期限がカットれているかどうかを確認します<br> if(time()> $ verificationinfo [&#39;expiry_time&#39;]){<br> falseを戻るします。<br> }<br><br> //検証コードが一貫性のあるするかどうかを確認します<br> if($ code!= $ visificiationinfo [&#39;code&#39;]){<br> falseを戻るします。<br> }<br><br> //検証がフェリーされ、検証コード情報を削除します<br> $ sql = "sms_verification from sms_verification where id = {$ visificiationinfo [&#39;id&#39;]}";<br> //削除動作しますを実行します<br> // ...<br><br> trueを戻るします。<br> }

例外処理と最適化

実際のアプリケーションでは、いくつかの異常な状況を考慮する必要があります。たとえば、データベースの操作に失敗し、SMSインターフェイスコールが失敗しました。さらに、セキュリティを改善するために、検証コードの伝送周波数制限や検証コードエラーの数などのメカニズムを追加できます。

要約します

PHPを介したSMS検証コードの自動有効期限検証を実装することは、アプリケーションセキュリティを改善するための効果的な方法です。データベーステーブル構造の合理的な設計と適切なPHPコードロジックと組み合わされて、検証コードが有効期間内に検証され、虐待を効果的に防止することが保証されます。このような措置により、ユーザーアカウントのセキュリティとプライバシー保護を改善できます。