View Single Post
ישן 16-06-06, 20:18   # 1
-roee-
חבר על
 
מיני פרופיל
תאריך הצטרפות: Nov 2005
מיקום: IL
הודעות: 864

-roee- לא מחובר  

[מדריך] בניית קוד אבטחה רנדומאלי ב PHP

במדריך זה אני יסביר לכם איך ליצור ב GD קוד אבטחה ולאחר מכן לבדוק אם המשתמש הקליד את הקוד נכון...

אנחנו לצורך העניין נשתמש בקובץ PHP שמתחיל ככה:
PHP קוד:
    switch($_GET["act"]) {

         case 
"image":
         
image();
         break;

         case 
"doimage":
         
doimage();
         break;

         default:
         
indeximage();
         break;
    } 
מטרת החלק הזה היא לבדוק איזה ערך יש ב GET שהוא ACT ולפי כך למיין את הקוד לפונקציות..

הפונקציה image();
בפונקציה זו אנחנו ניצור את התמונה שעליה יודפס קוד בעל 5 ספרות ואותיות רנדומליות לחלוטין..
על מנת לגשת אל התמונה עלינו לרשום <img src='?act=image'>

PHP קוד:
    function image() {
        
header ("Content-type: image/png");
        
$string substr(md5(time()) 0,5); // הקוד שיוצג הוא בעצם ה 5 אותיות או ספרות הראשונות בהצפנה MD5 של הזמן העכשיווי time()..
        
$font  4;
        
$width  50;
        
$height 20;
        
$im = @imagecreate ($width,$height);
        
$background_color imagecolorallocate ($im255255255); //רקע לבן
        
$text_color imagecolorallocate($im25500);
        
imagestring ($im$font00,$string$text_color);
        
imagepng ($im);
    } 
הפונקציה indeximage();
זוהי הפונקציה של ברירת המחדל.. כל מי שייכנס אל הדף שלנו רואה את פונקציה זו...
PHP קוד:
    function indeximage() {
        
$string substr(md5(time()), 0,5); // בדיוק אותו הערך שיש על התמונה
        
echo "
        <form method=\"POST\" action=\"?act=doimage\">
          <img src=\"image.php?act=image\"><br>
          <input type=\"hidden\" name=\"real\" value=\"$string\">
          <font face=arial>Enter the code below:</font> <input type=\"text\" name=\"input\" size=\"20\"><br>
          <input type=\"submit\" value=\"&ugrave;&igrave;&ccedil;\" name=\"submit\">
        </form>
        "
;
    } 
הפונקציה doimage();
בפונקציה זו אנחנו מקבלים 2 משתני POST. האחד הקוד הנכון אשר היה HIDDEN בטופס והשני הוא מה שהמשתמש הקליד..

PHP קוד:
    function doimage() {
        
$real $_POST["real"];
        
$input $_POST["input"];

        if(
$real != $input) { // אם המשתמש הקליד קוד שגוי
            
die("<font face=arial color=red>Incorrect</font>");
            return 
false;
        } else { 
// אם המשתמש הקליד קוד נכון
            
die("<font face=arial color=green>correct</font>");
            return 
true;
        }

    } 

הסוף!

מקווה שהבנתם משהו מהמדריך..
תהנו ותלמדו
  Reply With Quote