ユーザー登録における最も一般的なセキュリティ検証の 1 つは電子メール検証です。業界の一般的な慣例によれば、電子メール検証は潜在的なセキュリティ リスクを回避するために非常に重要です。ここでこれらのベスト プラクティスについて説明し、PHP で電子メール検証を作成する方法を見てみましょう。
登録フォームから始めましょう:
次はデータベースのテーブル構造です:
フォームが送信されたら、ユーザーの入力を検証し、新しいユーザーを作成する必要があります:
登録後、ユーザーのメールアドレスが認証されるまで、ユーザーのアカウントは無効のままです。この機能は、ユーザーが入力された電子メール アドレスの所有者であることを確認し、スパムや電子メールの不正使用、情報漏洩を防ぐのに役立ちます。
プロセス全体は非常に簡単です。新しいユーザーが作成されると、登録プロセス中にユーザーが入力した電子メール アドレスに確認リンクを含む電子メールが送信されます。ユーザーが電子メール検証リンクをクリックして電子メール アドレスを確認するまで、ユーザーはログインして Web サイト アプリケーションを使用できません。
検証済みリンクについては注意すべき点がいくつかあります。検証されたリンクには、ネットワーク攻撃を防ぐために、十分な長さのランダムに生成されたトークンが含まれている必要があります。同時に、複数のユーザーを攻撃する潜在的な危険を回避するために、電子メール検証にはユーザーの一意の識別子も含める必要があります。
それでは、実際に確認リンクを生成する方法を見てみましょう:
この検証が作成されたら、それをデータベースに保存し、ユーザーに送信します:
メール認証の内容:
それでは、それが機能するかどうかを確認してみましょう:
結論:
上記のコードは単なるチュートリアルの例であり、十分にテストされていません。 Web アプリケーションで使用する前にテストしてください。上記のコードは Laravel フレームワークで実行されていますが、他の PHP フレームワークに簡単に移行できます。同時に、確認リンクは 48 時間有効で、その後は期限切れになります。ワークキューを導入すると、期限切れの検証リンクをタイムリーに処理できます。
この記事は PHPChina によるオリジナルの翻訳であり、原文は http://www.phpchina.com/portal.php?mod=view&aid=39888 に転載されています。編集者はこの記事が非常に学習価値があると考え、共有します。皆さんにとって、学習が役立つことを願っています。