Logo

רד-בורד: ארכיון

ראשי > תיכנות > שחף מה שהבטחתי =)

14/01/2005 20:45:25 nickless
אממ אז אני בונה עכשיו מערכת בPHP אז נעדכן אותכם פה (בלעדית) בקוד של כמה דברים =)

אז עכשיו סיימתי לתקן תמערכת הרשמה אז..

אוקי זה החלק כמעט הכי חשוב במערכת......הinclude שמביא תמידע לחיבור לmysql אז נסביר פה מה עושים עם זה
קוד:<?
$aa&#061;mysql_connect(’your_host’,’your_user_name’,’your_password’)
or die("ERROR: cannot connect to MySQL server.");
mysql_select_db(’select_the_db_you_want_to_use’,$aa);
?>
אוקיי... את הhost תכניסו בyour_host את שם המשתמש בyour_user_name ותססמא בyour_password

אתם צריכים להכניס את השם של הDB שלכם איפה שכתובselect_the_db_you_want_to_use כמובן בתוך המרכאות!! ( ’ ’ )


להורדה
תבחרו את harshama לא שיש לכם ברירה ממש.....[ההודעה נערכה על-ידי nickless ב-14/01/2005 20:49:43]
20/01/2005 23:27:49 Admin
מבחינת העיצוב המערכת נראית לא רעה, אבל מבחינת הקוד המערכת מאוד
מבולבלת ומבלבלת.

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

מכאן נעבור לחוסר בהגנות, אתה שוכח כמה קל לפרוץ לאתרים באמצעות
פרצת כמו SQL Injection ו-XSS שהן כה פשוטות אך כה הרסניות. מצאתי
לך בפורום פתרון ב-php לשתי הפרצות עליהן דברתי קודם, אולי כדאי
שתנסה אותו:
קוד:function bugtraq()
{
func_get_args();
$v=func_get_arg(0);
$ptrn=array(
chr(60),
chr(62),
chr(39),
chr(34),
chr(59));
for($n=0;$n!=sizeof($ptrn);$n++)
{
if(preg_match("/$ptrn[$n]/",$v))
{
return 1; # eeww go away you creep...
}
}
return 0; # alright u can pass...
}
ההודעה המקורית דרך-אגב נמצאת פה
דבר נוסף בנוגע להגנה הוא חוסר שימוש במספרי אבטחה חד פעמיים
למניעת הצפות בהרשמה ובהתחברות (בהתחברות קצת פחות נחוץ),
ב-ASP לא יודע לי על אפשרות כזאת מעבר לאפשרויות עקיפות
שדורשות שימוש במסד נתונים, אך כן ידוע לי על אפשרות כזו ב-PHP
ואולי כדאי שתחפש איך להשתמש בה.
ודבר אחרון בנוגע לאבטחה הוא העוגייה, לתוכה לפי מה שהבנתי
מוזן רק שם המשתמש, כדאי להוסיף גם סיסמה לעוגייה, ובאותה
הזדמנות לדאוג לשים על הסיסמה הצפנה עוד בהזנה שלה למסד הנתונים.

היה דבר שהפריע לי בקוד, הוא היה בעמוד ההתחברות בו כתבת ככה:
קוד:
if (!$user=$user2)
{
\\ פה כתבת הודעה שהפרטים לא נכונים במידה ושם המשתמש
שהוזן זהה לזה שבמסד הנתונים
}
elseif (!$user<>$user2)
{
if ($pass==$pass2)
{
setcookie("uss",$user,time()+99999);
\\ אם כתבת קודם שאילתה שבודקת אם השם שהוזן לזהה לזה
שבמסד הנתונים, אז למה עכשיו אתה מבצע בדיקה לזיהוי הסיסמה
כאשר אתה בודק מה קורה כשהשם שהוזן לא נכון?

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

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


בהצלחה בהמשך עם המערכת.
21/01/2005 14:27:58 nickless
והאותיות בעברית לפחות בדפדפן שלי אם כותבים בעברית זה מראה ג’יבריש
עם התנאים לא ממש הבנתי הראשון בודק שאם היוזר שכתבת לא זהה לזה שבבסיס אז מראה שגיאה ואם הוא כן זהה אז הוא בודק תסיסמא ואם הכל זהה אז הוא כותב שאתה מחובר ושולח לך עוגיה
למה צריך סיסמא בעוגיה?? לא אמור להיות לך תעוגיה אם לא הקשת תסיסמא נכון
בשביל מספרי אבטחה לא צריך להכין תמונות!?
ועם הפונקציה שהבאת לא הבנתי ממש
עמודים: 1