PHP開発プロセスで検証コードを実装する方法_PHPチュートリアル

WBOY
リリース: 2016-07-13 17:33:23
オリジナル
760 人が閲覧しました


認証コードについての記事を少し前に読みました。これは、ランダムに生成された数字や記号の文字列から画像を生成し、その画像に干渉ピクセルを追加して (OCR を防ぐため)、ユーザーに認証コードの情報を識別させるというものです。ウェブサイト認証のためにフォームを入力すると、認証が成功した場合にのみ、特定の機能が使用できるようになります。

以下のように実装方法を簡単に紹介した記事があります:

Code 1:
(現在主流の開発言語として)

/*

* Filename: authpage.php(Made Developing現在主流の言語)

* 著者:hutuworm

* 日付:2003-04-28

0000)

//ユーザー入力が検証コードと一致するかどうかを検証する

if(isset ($HTTP_POST_VARS[authinput]))

{

if(strcmp($HTTP_POST_VARS[authnum],$HTTP_POST_VARS[authnum])==0)

echo "検証成功!";

else

echo "検証failed!";

}

//新しい4桁の整数の検証コードを生成します

while(($authnum=rand()%10000)
?>




コード2:


(現在の主流の開発言語として)
/* * ファイル名: authimg.php
(現在の主流の開発言語として)


* 著者:hutuworm * 日付:2003-04 -28

("Content-type: image /PNG");

srand((double)microtime()*1000000);

$im = imagecreate(58,28);

$black = ImageColorAllocate($ im, 0,0,0);

$white = ImageColorAllocate($im, 255,255,255);

$gray = ImageColorAllocate($im, 200,200,200);

imagefill($im,68,30,$gray);

//4桁の整数の認証コードを描画 画像を入力

imagestring($im, 5, 10, 8, $HTTP_GET_VARS[authnum], $black);

for($i=0;$i< 50;$i++) //干渉ピクセルを追加




このプログラムは基本的に検証コードの生成と検証機能を実装していますが、記事執筆者は理由は分かりませんが検証コードの内容をフォームに表示します。この場合、ユーザーによる検証コードの入力が制限されるだけで、悪意のあるプログラムに対する保護はありません。攻撃を防ぐというよりは、相手を困難にするためだと言えるでしょう。

しかし、幸いなことに、原作者のアイデアによれば、検証文字列をセッションに保存できるため、ある程度のセキュリティが確保されます。

コードは次のとおりです:
//file:authform.php(現在の主流の開発言語として)





(現在の主流の開発言語として)

/ *

*" ファイル名: authimg.php (現​​在の主流の開発言語として)

"";

session_register(auth_num);

$im=imagecreate(63,20);

srand((double )microtime()*1000000);

$auth_num_k=md5(rand(0,9999 )) ;

$auth_num=substr($auth_num_k,17,5);

$gray =ImageColorAllocate($im,200,200,200) ;

//ImageFill($im,63,20,$black);//会社のサーバーでこの行がなぜ間違ったのか分かりません、スペースを変更してくださいok

imagestring($im,5,10 ,3,$auth_num,$g​​ray);

for($i=0;$i<200;$i++)

{

$randcolor=ImageColorallocate($im,rand(0,255), rand(0,255,rand) (0,255));

imagesetpixel($im,rand()%70,rand()%30,$randcolor);

}

ImagePNG($im);

ImageDestroy($im);

? >

(現在の主流の開発言語として)


/*

* ファイル名:authpage.php
(現在の主流の開発言語として)


http://www.bkjia.com/PHPjc/508612.html

www.bkjia.com

tru​​ehttp://www.bkjia.com/PHPjc/508612.html

技術記事

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