לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה ‎print ‎"Hello World!"; if‎ ‎not rules.‎know ‎then rules.‎read(); חץ ימינה  

לך אחורה   לובי הפורומים > מחשבים > תכנות ובניית אתרים
שמור לעצמך קישור לדף זה באתרי שמירת קישורים חברתיים
תגובה
 
כלי אשכול חפש באשכול זה



  #1  
ישן 17-06-2006, 14:29
  משתמש זכר davidman davidman אינו מחובר  
 
חבר מתאריך: 27.04.05
הודעות: 441
בעייה עם קוד אבטחה (GD)

בניתי קוד אבטחה הכול פועל מצויין עד הקטע שאני מנסה לקחת את הקוד הזה ולקבל אותו בעמוד אחר .
אז קראתי פה אשכולות של אנשים אחרים וראיתי את הפתרון שאתם מציעים סשנים , אחלה עשיתי סשנים אבל אז נוצרה בעייה חדשה
ברגע שאני נכנס בפעם הראשונה לעמוד אין סשן זאת אומרת שאין את הקוד אבל אחרי ריפרש אחד נוצר דיליי בין הקוד בתמונה לקוד שאני מקבל בסשן הכוונה היא הנה העמוד פתוח יש קוד מסויים בתמונה ויש קוד מסויים בסשן ( הם אמורים להיות אותו דבר , אבל הם לא ) אחרי ריפרש הקוד שהיה בתמונה נהיה הקוד בסשן ובתמונה יש קוד חדש .
עכשיו הנה הקודים והדוגמות : http://crazy.mustkey.net/signup.php - הטופס שבו הכול אמור לפעול (הקוד שמודפס למעלה זה רק לצורכי בדיקה זה הקוד שמופיע בסשן)
הקוד של העמוד הזה :
קוד PHP:
<?php
session_start
();
include(
"db.php");
$user $_POST['user'];
$password $_POST['password'];
$email $_POST['email'];
$code $_POST['code'];
session_is_registered(num);
echo 
"$num";
if (isset (
$user $password $emil) & $code == $num ){
$in " INSERT INTO `signup` (user,password,email)
                       VALUES('
$user' , '$password' , '$email')";
mysql_query($in);
} else {
echo 
"";
}
?>
<html dir="rtl">
<head>
<style type="text/css">
.dashed 
{
border-style: dashed;
border-width:1px
}
</style>
</head>
<body >
<form action="" method="POST">
<table class="dashed">
<tr>
<td>User Name : </td>
<td><input type="text" size="20" name="user"></td>
</tr>
<tr>
<td>PassWord :</td>
<td><input type="password" size="20" name="password"></td>
</tr>
<tr>
<tr>
<td>Email : </td>
<td><input type="text" size="20" name="email"></td>
</tr>
<td>Code :</td>
<td><input type="text" size="20" name="code"></td>
</tr>
<tr>
<td></td>
<td><img src="gd.php" alt="image" /></td>
</tr>
<tr>
<td></td>
<td><input type="submit" name="submit" value="submit"></td>
</tr>
</table>
</form>
</body>
</html>


והקוד של העמוד שיוצר את התמונה :
קוד PHP:
<?php 
session_start
() ;
header("Content-type: image/png"); 
function 
randomkeys($length)
  {
   
$pattern "1234567890abcdefghijklmnopqrstuvwxyz";
   for(
$i=0;$i<$length;$i++)
   {
     
$key .= $pattern{rand(0,35)};
   }
   return 
$key;
  }
session_register(num);
$num randomkeys(8);
$im imagecreatefrompng("big.png"); 
$white imagecolorallocate($im0xFF0xFF0xFF);
imagestring($im2040,9$num$white); 
imagepng($im); 
imagedestroy($im); 
?>

מקווה שהבנתם את הבעייה
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #12  
ישן 19-06-2006, 01:07
  XmAx XmAx אינו מחובר  
 
חבר מתאריך: 22.05.05
הודעות: 250
בתגובה להודעה מספר 1 שנכתבה על ידי davidman שמתחילה ב "בעייה עם קוד אבטחה (GD)"

בוא אני אסביר לך משהו פשוט שאני עשיתי, יצרתי עמוד אחד שמציג לי תמונה עם GD של הקוד אבטחה, העמוד מקבל ב-GET מספר כלשהוא (יכול להיות גם מחרוזת.. מה שבא לך) כלומר משהו כזה: image.php?code=5214
אני מציג את התמונה ב-HTML עם <img src="image.php?code=5214" /> ובתוך שדה מוסתר מעביר את המספר הרנדומלי שנוצר (5214 במקרה הזה)

בעמוד שיוצר את התמונה אני יכול להוסיף מספרים / אותיות ולעשות מה שבא לי שם, להריץ על זה קידוד של MD5 או כל דבר אחר, ובסוף לקצץ מזה נגיד רק את ה-6 תווים האחרונים
את אותו קטע קוד שמקודד ויוצר לי מזה מחרוזת כלשהיא (שהסיכויים שמישהו יצליח לעלות על כל החירבושים שהכנסתי שם הם שואפים ל-0..) אני מכניס בווידוי של התמונה אחרי שהטופס נשלח, ואז משווה פשוט בין השדה עם המחרוזת של התמונה שהמשתמש הכניס, לבין המחרוזת שיצרתי עם הקוד שהועבר לי בשדה המוסתר
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #16  
ישן 22-06-2006, 08:55
  שימיadmin שימי אינו מחובר  
מנהל פורומי "תכנות ובניית אתרים" ו"חומרה ורשתות"
 
חבר מתאריך: 25.10.01
הודעות: 42,775
הקוד שלך די ארוך ואין לי כוח לפענח מה עשית :)
בתגובה להודעה מספר 15 שנכתבה על ידי davidman שמתחילה ב "ההגנה שלי יוצרת קוד רנדומלי..."

כעקרון - זו השיטה:

בדף שמציג את התמונה:
פתיחת SESSION
הגרלת מספר/אותיות ושמירה במשתנה
שמירת המשתנה ב SESSION
פלט תמונה של תוכן המשתנה דרך GD
(יש לשים לב שבשום מקום לא הועבר כאן מידע על תוכן המשתנה בטקסט לגולש, גם לא בצורה מוחבאת)

בדף שמפענח:
פתיחת SESSION
השוואה מהמשתנה השמור ב SESSION למידע שחזר מהשדה בטופס ששלח הגולש
_השמדת_ ה SESSION כדי שלא ייכנסו שוב לדף המפוענח עם אותו תוכן משתנה (יהיו חייבים להיכנס לקובץ התמונה שוב כדי שלמשתנה יהיה תוכן, ואז באופן אוטומטי כבר יהיה לו ערך אחר שאינו חזוי...)
_____________________________________
תמונה שהועלתה על ידי גולש באתר ולכן אין אנו יכולים לדעת מה היא מכילה
נמאס לכם לזכור סיסמאות? לחצו כאן!

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #17  
ישן 22-06-2006, 09:38
  משתמש זכר davidman davidman אינו מחובר  
 
חבר מתאריך: 27.04.05
הודעות: 441
בתגובה להודעה מספר 16 שנכתבה על ידי שימי שמתחילה ב "הקוד שלך די ארוך ואין לי כוח לפענח מה עשית :)"

עריכה : רציתי להוסיף שאני עושה בדיוק מה שכתבתה .

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

שוב פעם הנה הדוגמה : http://crazy.mustkey.net/signup.php
בהתחלה שים לב שאין לך שם שום דבר ואחרי ריפרש מופיע לך הקוד מעל הטופס ( הדפסתי אותו לבדיקה )
אבל הקוד הזה שמופיע זה הקוד שהיה מקודם בתמונה , ועכשיו בתמונה יש קוד אחר .

נערך לאחרונה ע"י davidman בתאריך 22-06-2006 בשעה 09:58.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #18  
ישן 22-06-2006, 12:00
  XmAx XmAx אינו מחובר  
 
חבר מתאריך: 22.05.05
הודעות: 250
בתגובה להודעה מספר 14 שנכתבה על ידי שימי שמתחילה ב "אם הקליינט מקבל את המידע כשהוא שולח את הטופס, וגם שולח, זה אומר שהקליינט קובע את הקוד"

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

קח דוגמא, נגיד ה-ID הוא 123
אני עושה נגיד נוסחא בסגנון של
קוד PHP:
 $Code md5($_GET['i'] *154 24 2); // if ID is '123', then: 9459
$Code substr($Code46); 

יוצא לי מזה קוד שהוא f22e70
נראה לך שמשתמש יכול לעלות על זה? וזאת עוד היתה סתם דוגמא.. בד"כ הנוסחא שם קצת יותר בעייתית ועם עוד כמה קידודים

כשחשבתי על איך לעשות את זה, עברתי על כמה אתרים כדי לראות בערך איך הם עשו, אתה תגלה שאפילו גוגל עובדים ככה: תמונה שהועלתה על ידי גולש באתר ולכן אין אנו יכולים לדעת מה היא מכילה
התמונה תמיד נשארת זהה שם.. תלחץ על התמונה ותראה איך הכתובת נראת
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #19  
ישן 22-06-2006, 13:26
  emanuel emanuel אינו מחובר  
 
חבר מתאריך: 11.02.05
הודעות: 569
שלח הודעה דרך ICQ אל emanuel
טועה!...
בתגובה להודעה מספר 18 שנכתבה על ידי XmAx שמתחילה ב "למה חסרת תועלת? נראה לך..."

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


<?php

$aaa = 123;
$bbb = ($aaa *154 - 24)/ 2;
$ccc = 18930 / 2;
$Code = md5($bbb); // if ID is '123', then: 9459
$Code1 = substr($Code, 5, 7);
echo $bbb."<br><br><br>";
echo $Code."<br><br><br>";
echo $Code1."<br><br><br>";
?>


זה תמיד יתן f22e70a!!בדוק!!אני מזייף טופס..וזהו..פרוץ...
יענו לחץן שליחה לכתובת שאתה בחרת בsubmit...
שדה מוחבא עם 123 ומה שאני כותב בקוד אבטחה זה f22e70a....
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

כלי אשכול חפש באשכול זה
חפש באשכול זה:

חיפוש מתקדם
מצבי תצוגה דרג אשכול זה
דרג אשכול זה:

מזער את תיבת המידע אפשרויות משלוח הודעות
אתה לא יכול לפתוח אשכולות חדשים
אתה לא יכול להגיב לאשכולות
אתה לא יכול לצרף קבצים
אתה לא יכול לערוך את ההודעות שלך

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 13:20

הדף נוצר ב 0.07 שניות עם 10 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2024 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר