認証コードについての記事を少し前に読みました。これは、ランダムに生成された数字や記号の文字列から画像を生成し、その画像に干渉ピクセルを追加して (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,$gray);
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
truehttp://www.bkjia.com/PHPjc/508612.html
技術記事