ThinkPHP6 検証コードの生成と検証: アプリケーションのセキュリティの保護
インターネットの発展に伴い、さまざまな種類の悪意のある攻撃が際限なく出現します。アプリケーションのセキュリティを保護するために、検証コードは一般的なセキュリティ対策になっています。この記事では、ThinkPHP6 フレームワークで検証コードを生成および検証する方法を紹介し、コード例を使用して説明します。
1. 検証コードの生成
ThinkPHP6 では、拡張パッケージ topthink/think-captcha
を使用して検証コードを生成できます。まず、プロジェクト ディレクトリの composer.json
ファイルに依存関係を追加する必要があります。
"require": { "topthink/think-captcha": "^1.0" }
次に、composer update
コマンドを実行して、依存パッケージをインストールします。インストールが完了したら、コントローラーまたはサービス層で検証コード オブジェクトを使用して検証コードを生成できます。
ログイン ページで確認コードを生成する必要があると仮定すると、コントローラーで次の操作を実行できます。
use thinkcaptchaacadeCaptcha; class LoginController extends Controller { public function index() { // 生成验证码 $captcha = Captcha::create(); // 把验证码保存到session中 session('captcha', $captcha->getCode()); // 渲染登录页面,将生成的验证码图片和表单一起展示 return view('login', [ 'captcha_img' => $captcha->getImage(), ]); } }
上記のコードでは、最初に Captcha を使用します。
クラス create
メソッドは検証コード オブジェクトを生成し、検証コードを session
に保存します。次に、生成された確認コードの画像とログイン フォームをログイン ページに渡して表示します。
2. 確認コードの確認
ユーザーがログイン フォームを送信した後、ユーザーが入力した確認コードが正しいかどうかを確認する必要があります。 ThinkPHP6 フレームワークは、検証コードを検証するための便利な方法を提供します。
ログイン ページ フォームが送信された後、コントローラーで次の操作を実行して検証コードを確認できます。
use thinkcaptchaacadeCaptcha; class LoginController extends Controller { public function login() { // 获取用户输入的验证码 $inputCode = input('captcha'); // 获取session中保存的验证码 $sessionCode = session('captcha'); // 进行验证码验证 if (!captcha_check($inputCode, $sessionCode)) { // 验证码错误,返回错误信息 return '验证码错误!'; } // 验证码验证通过,执行登录逻辑 // ... } }
上記のコードでは、最初に input# を渡します。 ## 関数 ユーザーが入力した検証コードを取得し、
session 関数を通じて以前に生成された検証コードを取得します。最後に、
captcha_check 関数を使用して、検証コードが正しいことを確認します。検証コードが渡された場合はログイン ロジックが実行され、そうでない場合はエラー メッセージが返されます。
login.html であると仮定すると、次のコードをファイルに追加できます:
<form action="/login" method="post"> <div> <label for="captcha">验证码:</label> <input type="text" id="captcha" name="captcha" required> </div> <div> <img src="{{ captcha_img }}" alt="验证码"> </div> <div> <button type="submit">登录</button> </div> </form>
img タグを介して検証コード イメージを表示します。ここで、
{{ captcha_img }} は出力にテンプレート エンジンの構文を使用します。
以上がThinkPHP6 検証コードの生成と検証: アプリケーションのセキュリティの保護の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。