PHP を使用してヒューマンマシン検証コードを実装する方法

WBOY
リリース: 2023-06-27 14:36:01
オリジナル
1630 人が閲覧しました

ヒューマンマシン検証コードは、悪意のあるロボット攻撃や悪意のある登録を効果的に防止できる検証コードの一般的に使用される形式です。 PHP はサーバーサイド言語として、ヒューマンマシン検証コード機能の実装に非常に適しています。この記事では、PHPを使用して人間と機械の検証コードを実装する方法を紹介します。

  1. 検証コード イメージの生成
    まず、検証コード イメージを生成する必要があります。この処理は GD ライブラリを使用することで実現できます。 GD ライブラリは、さまざまな種類の画像の生成と操作に使用できるオープン ソースの画像処理ライブラリです。 PHPではGD拡張機能をインストールすることで利用可能になります。

以下は、検証コード イメージを生成するコード例です。

<?php
session_start();
$code = rand(1000, 9999);
$_SESSION["code"] = $code;
$width = 100;
$height = 50;
$image = imagecreatetruecolor($width, $height);
$textColor = imagecolorallocate($image, 0, 0, 0); //设置文本颜色
$bgColor = imagecolorallocate($image, 255, 255, 255); //设置背景颜色
imagefilledrectangle($image, 0, 0, $width, $height, $bgColor); //绘制矩形背景

//绘制验证码字符串
$font = 'arial.ttf'; //字体
$fontSize = 24; //字体大小
$x = 20; //x轴位置
$y = 30; //y轴位置
for ($i = 0; $i < 4; $i++) {
    $char = substr(str_shuffle("ABCDEFGHJKMNPQRSTUVWXYZ23456789"), 0, 1);
    imagettftext($image, $fontSize, rand(-15, 15), $x, $y, $textColor, $font, $char);
    $x += 20;
}

header('Content-type: image/png');
imagepng($image);
imagedestroy($image);
?>
ログイン後にコピー

このコードは、サーバー側で検証コード イメージを生成し、ブラウザに出力して表示します。

  1. ユーザー入力の確認
    次に、ユーザー入力が正しいかどうかを確認する必要があります。検証コードを生成するときに、検証コードをセッションに保存しました。したがって、ユーザーが入力を送信した後、ユーザーが入力した検証コードとセッションに保存された検証コードを比較できます。

以下はユーザー入力を検証するコード例です:

<?php
session_start();
if($_POST["code"] != $_SESSION["code"]) {
    echo "验证码输入错误";
} else {
    echo "验证码输入正确";
}
?>
ログイン後にコピー

このコードは、ユーザーが送信した検証コードがセッションに保存された検証コードと同じかどうかを検証します。 。一致しない場合はエラー メッセージが出力され、一致する場合はユーザーの入力が正しいことを意味します。

  1. フォームへの埋め込み
    最後に、ヒューマンマシン検証コードをフォームに埋め込む必要があります。悪意のある攻撃者が検証コードを入力せずに直接フォームを送信することを防ぐために、検証コード生成スクリプトとフォームを同じページに表示し、送信後に検証する必要があります。

以下は、ヒューマンマシン検証コードをフォームに埋め込むコード例です:

<form method="post" action="verify.php">
    <p>用户名:</p>
    <input type="text" name="username">
    <p>密码:</p>
    <input type="password" name="password">
    <p>验证码:</p>
    <input type="text" name="code">
    <img src="code.php" alt="验证码">
    <input type="submit" value="提交">
</form>
ログイン後にコピー

このコードは、検証コードを表示する画像をフォームに追加します。ユーザーはフォームを送信するには、画像に表示されている確認コードを入力する必要があります。送信ボタンをクリックすると、フォームは検証スクリプトコードにジャンプし、検証を実行します。

概要
この記事では、PHP を使用してヒューマン マシン検証コードを実装する方法を紹介します。検証コードイメージを生成してセッションに保存することで、悪意のある攻撃や登録を効果的に防ぐことができます。人間と機械による検証コードをフォームに埋め込むと、Web サイトのセキュリティとユーザー エクスペリエンスを効果的に向上させることができます。

以上がPHP を使用してヒューマンマシン検証コードを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート