הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   PHP | אימות של קוד אבטחה (https://hosts.co.il/forums/showthread.php?t=43974)

syn 20-04-07 15:58

PHP | אימות של קוד אבטחה
 
הכנתי קוד אבטחה מתמונה, אני צריך שמישהו ידריך אותי איך אני עושה אימות של הקוד,
אם המשתמש כתב את ה string נכון ב input תדפיס משהו, אם לא תדפיס משהו.

PHP קוד:

<?php
$string 
rand 11111,99999 ) ;
$string str_replace '2''F'$string ) ;
$string str_replace '6''e'$string ) ;
$string str_replace '1''X'$string ) ; 
$string str_replace '7''D'$string ) ; 
$string str_replace '4''h'$string ) ; 
echo 
"<img src='test.php?code=$string' /><br />Code: $string";
echo <<<EOF
<br /><br />enter code pl0x<br />
<form action="hi.php" method="POST">
<input type="text" name="code" size="40">
<input type="submit" value="gogogo" />
</form>
EOF;
?>


DorWD 20-04-07 16:05

זה לא קוד אבטחה מתמונה... זה סתם יצירת סטרינג...
בכל מקרה אתה עושה דף אחד שיוצר את התמונה ועושה סשן עם הקוד של התמונה
ואז בטופס (בדף אחר) אתה בודק אם הסשן שווה למה שנכתב בטופס

בניה 20-04-07 16:08

קודם כל, בחיים אל תתן את הקוד אבטחה דרך משתנה GET לקובץ שיוצר את התמונה כי אפשר לקרוא את הקוד כטקסט.
תשמור את הקוד בסשן.
וכל פעם שמישהו ניגש לדף שבודק את הקוד, תיצור קוד חדש.

syn 20-04-07 16:09

אבל אז הוא שם את ה string לתוך תמונה.

DorWD, אין לי מושג מה זה ה session הזה, קראתי ב php והסתבכתי :(
אתה יכול לפרט קצת יותר עם דוגמאות?

בהתחלה חשבתי לעשות -
קוד:

if($_POST['action']
אבל הבעיה שהקוד מתחלף אחרי שאני לוחץ submit ויוצא שהקוד לא נכון :/

עריכה: הבנתי איך זה פועל, בערך.
לא הבנתי מה אני אמור לעשות עם זה :(

satan 20-04-07 16:34

תנסה אולי משהו אחר
http://www.themador.org/view-page-pagenumber-84.htm

כי אם מה שהראת פה זה כל הקוד שלך אז...

גם הקישור הזה מציג קוד ומשהו יותר מאובטח ועם תוצאה הרבה יותר טובה.

syn 20-04-07 17:11

satan יש במדריך מלא שגיאות :|

אגב, אני מנסה כבר חצי שעה להבין מה לא בסדר בקוד הבא.
הוא מראה לי כל הזמן step 1, ז"א שהקוד נכון.

PHP קוד:

<?php
session_start
();

if(
$_POST['action']=="doedit"){





$code $_GET['code'];



if (
$code $_SESSION['image']) {
echo 
"step1";


} else {
echo 
"error, lol";
}




}


$string rand 11111,99999 ) ;
$string str_replace '2''F'$string ) ;
$string str_replace '6''e'$string ) ;
$string str_replace '1''X'$string ) ; 
$string str_replace '7''D'$string ) ; 
$string str_replace '4''h'$string ) ; 

$_SESSION['image'] = $string;

echo 
"<img src='test.php?code=$string' /><br />Code: $string";
echo <<<EOF
<br /><br />enter code pl0x<br />
<form action="hi.php" method="POST">
<input type="text" name="code" size="40">
<input type="submit" value="gogogo" />
<input type="hidden" name="action" value="doedit" />
</form>

EOF;

?>


Eran-s 20-04-07 17:50

רושמים == לא =.
= אחד זה השמה של התוכן.
== אופרטור השוואה

syn 20-04-07 21:40

אני כל הזמן מתבלבל ;P
אבל זה עדיין לא עובד אצלי :(

Udi 20-04-07 21:45

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

Eran-s 20-04-07 21:50

תנסה להדפיס את הערך של ה-SESSION אם הוא בכלל מעדכן אותו נכון


כל הזמנים הם GMT +2. הזמן כעת הוא 07:36.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ