05-08-06, 22:24 | # 1 |
מ.תיכנות
|
[מדריך] PHP - אבטחת מידע
שוב שלום לכם, אבטחת מידע כמו ששוב, ראיתי דרך קודים אשר אתם המשתמשים הדבקתם באשכולות רבים פה, ראיתי ששום דבר פשוט אין מאובטח, והכנסה נתונים ותווים לא רצויים, מתבצעת בפשטות. מדוע לאבטח? המטרה העיקרית באבטחה היא מניעה מ"האקרים" לחדור אל מסדי הנתונים, ושיבוש פעולות האתר. רוב הפריצות מתבצעות דרך שליחת נתונים מן המשתמש, לדוגמא, בטופס הרשמה, ברצונכם שמשתמש האתר יכתוב את שמו המלא, אבל מפני שלא אבטחתם, הוא יכול להכניס תווים אחרים ואף תגי HTML. רוב הפריצות מתבצעות דרך מידע הנשלח אל מסד הנתונים DB, ואתר שאינו מאובטח לרוב יהיה מטרה קלה לפורצים. מה ניתן לעשות? עליכם פשוט לחשוב טוב, איפה באתר ישנן שליחות מידע דינאמי דרך המשתמש? לרוב נעשות שליחות מידע דרך תיבות טקסט (POST), ודרך כתובת האתר (GET), ובמדריך זה נלמד לאבטח בבסיסיות את שני דרכי העברת מידע אלו. לדוגמא!: אתם מעוניינים לשלוף מן המסד, כתבה, שקבלת מספרה האוטומטי(ID), מתבצעת דרך GET. כתובת אתר לדוגמא: PHP קוד:
עד עכשיו, הכל פשוט, הact הינו מחרוזת (string), והID הינו מספר שלם (INTEGER). לדוגמא שליפת נתונים: PHP קוד:
אין בעיות? לא? אז ככה, שזו טעות חמורה, בעצם נתתם לגולש אפשרות לכתוב כל ID שהוא רוצה, כולל מחרוזות. משתמש יכול פשוט לשנות את הID, למשהו אחר, PHP קוד:
כמובן שאף אחד אינו רוצה שלגולש תהייה האפשרות לבצע דבר כזה, ולכן, עלינו לוודא, האם המחרוזת שקיבלנו במתודה GET, הינו מספר שלם, ניתן לוודא בעזרת הפונקצייה is_numeric. לדוגמא: PHP קוד:
די פשוט, ודי יעיל, אבל מה בידי מידע הנשלח דרך טפסים? אז ככה, טפסים אינם שונים במיוחד, כל שעליכם לעשות הוא להשתמש בפונקציה יעיל במיוחד: mysql_real_escape_string והיא אמורה לעזור לנו להתמודד עם תווים שעלולים לפגוע בשאליתות, ובמידע הנשלח מן המשתמש. זה הכל לבינתיים, אני מקווה שזה יעזור, ותקחו את זה לתצומת לבכם. -טל =] |
05-08-06, 22:26 | # 2 |
WBD.co.il
|
כל הכבוד על ההשקעה טל, מדריך מצוין
אגב, הציטוט בחתימה - אני אותך לרצוח מחר. |
05-08-06, 23:33 | # 3 |
משתמש - היכל התהילה
|
הmysql_real_escape_string, אף פעם לא השתמשתי בו, אבל אקסטרה הגנה לא מזיקה.
תודה רבה טל. |
06-08-06, 06:03 | # 4 |
משתמש תחת חוזה ניסיון.
|
כל הכבוד טלוש =]
אליחי חשוב להשתמש ב mysql_real_escape_string זה לדעתי אחד הפונקציות היותר יעילות שיש חח.. וטיפ קטן, לחסימת תווי HTML: PHP קוד:
__________________
|
06-08-06, 06:25 | # 5 |
הוסטסניון
|
וואלה....תודה ...תגיד לי רק דבר אחד בבקשה....
מה ההבדל בmysql_real_escape_string לבין mysql_escape_string קראתי על שניהם בPHP.NET ולפי מה שהבנתי הן עושות פעולות שונות אבל בשביל אותה המטרה... לדוגמא: REAL מכניס סלאשים לפני גרש גרשיים וכו'... ובלי REAL...אההההם שחכתי אבל זה עושה משהו אחר...אבל בכל מקרה הרעיון הוא אותו רעיון...אז למה עשו עוד כאלה? |
06-08-06, 14:37 | # 6 |
הוסטסניון
|
אחלה מדריך
שימוש בחסימת מספרים ב GET אני עושה תמיד.. אבל יש בעיות יותר אם מחרוזות ולא עם מספרים...דוגמא : קוד:
index.php?act=articles&ID=1' AND user='amir קוד:
index.php?act=articles&ID=1'; SELECT pass FROM members WHERE name='amir PHP קוד:
תקנו אותי אם אני טועה...פשוט לא בדקתי אם עובד..
__________________
אימיל \ מסן : amirs91 [at] gmail.com |
חברים פעילים הצופים באשכול זה: 1 (0 חברים ו- 1 אורחים) | |
Tags |
אבטחה, מדריך למתחילים, מדריך php |
כלים לאשכול | |
תצורת הצגה | |
|
|