ホームページ  >  記事  >  バックエンド開発  >  PHPのランダムな質問と回答の検証コードを書きましたが、個人的にはセキュリティはかなり良いと思います。

PHPのランダムな質問と回答の検証コードを書きましたが、個人的にはセキュリティはかなり良いと思います。

WBOY
WBOYオリジナル
2016-06-13 13:04:27846ブラウズ

PHP のランダムな質問と回答の検証コードを作成しましたが、個人的にはセキュリティはかなり優れていると思います。

wanking717 さんが書きました
セキュリティ機能 1:

1. 生成されたコンテンツは最終的な結果ではなく、ユーザーが質問に答えることを要求する質問と回答のシステムであり、セキュリティ要素は従来の検証コードよりも厳格です。

2. 生成される各数字の色、フォント、位置はランダムなので、他の人がプログラムのルールを理解するのは困難です。 (干渉線は気にしませんでした)

?

何か良い提案があれば、メッセージを残して一緒にコードを改善してください:

<?php  
//$i为要写在画板的位置,$num为要写的文字  
function rand4string($i,$num){  
    global $image_width,$image_height,$img;  
    $font=mt_rand(3,5);  
    $x=mt_rand(1,8)+$image_width*$i/6;  
    $y=mt_rand(1,$image_height/4);   
    $color=imagecolorallocate($img,mt_rand(0,100),mt_rand(0,150),mt_rand(0,200));  
    imagestring($img,$font,$x,$y,$num,$color);  
}  
session_start();  
header("content-type:image/png");  
$image_width=80;  
$image_height=18;  
$img = imagecreate($image_width,$image_height);  
imagecolorallocate($img,255,255,255);  
$random4symbol = array("+","-","x");    //三个符号进行循环  
$result = 0;  
$symbol = $random4symbol[mt_rand(0,count($random4symbol)-1)];  
$num1 = mt_rand(1,9);  
rand4string(0,$num1);  
$num2 = mt_rand(1,9);  
switch ($symbol){  
    case "+":  
        $result = $num1 + $num2;  
        rand4string(1,"+");  
        break;  
    case "-":  
        $result = $num1 - $num2;  
        rand4string(1,"-");  
        break;  
    case "x":  
        $result = $num1 * $num2;  
        rand4string(1,"x");  
        break;  
}  
rand4string(2,$num2);  
rand4string(3,"=");  
rand4string(4,"?");  
$_SESSION['code'] = $result;  
imagepng($img);  
imagedestroy($img);  
?>  

?

これで終わりです。 。ふふ。

1階 521069108 2011-09-21
うーん、それは興味深いですね。中国語の答えなどを追加していただけますか。

2階 521069108 2011-09-21
私が言ったことを達成するには、データベースを保存する必要があると推定されます - 0
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。