08-10-05, 19:11 | # 1 | |
חסום
|
[מדריך] PHP - הגנה נגד הזרקות כתובת
בס"ד רבותי שלום רב!, במדריך זה החלטתי לכתוב על שיטות למניעת הזרקות כתובת והסבר כללי על הזרקות. את המדריך אחלק לשלושה נושאי אם: מהם הזרקות?, כיצד פועלות ההזרקות הכתובת? וכיצד נמנע הזרקות כתובת?. מהם הזרקות? הזרקות הינם זריקת תוכן מסויים לתוך משתנה.היעד שלהם הוא לשטול מידע שיגרום לבאג/תוכן שגוי במערכת. כיצד פועלות ההזרקות הכתובת? ההזרקות הללו פועלות ע"י שליחת תוכן אחר לתוך שורת הכתובת.למשל נתונה הכתובת: קוד:
index.php?act=addpoint&add=500 ותוזרק הכתובת הבאה: קוד:
index.php?act=addpoint&add=50000.464;?> כיצד נמנע ההזרקות כתובת? מניעת ההזרקות כתובת אינה פעולה קשה במיוחד, לפעמים חשוב לחשוב על שיטת הצפנה אשר תעזור לנו למנוע הזרקה. - הצפנת נתונים. במידה ונרצה ליצור משחק, שיהיה כמעיין חפש את המטמון. וניצור לחצן שיוסיף נקודות למשתמש כפרס ע"י לחיצה במקום מסוים בפורום, ושכל מקום יביא מספר שונה של נקודות; אך לא נרצה לתת מספר קטלוגי לכל מקום, כך שיביא נקודות שונות. מה נעשה?, נצפין בשיטת הצפנה מסוימת הידועה רק לנו את מספר הנקודות, או נצפין בכמה הצפנות !. - מניעת הזריקות למשתנה. כפי שידוע לנו במידה ולא נמנע את הזריקות הנתונים מהכתובת ייובאו לתוך משתנים. כדוגמא זו: ציטוט:
PHP קוד:
כיצד נמנע זואת? נוכל למנוע זואת ע"י הזנה שזוהיא שליחת GET. ונבנה את הקוד הבא: PHP קוד:
- ניפוי באגים והקצבת מספר ערכים אפשריים. במידה ואנו מעוניינים ליצור את כל הפעולות בקובץ אחד, כלומר ליצור action. כיצד ניצור זואת?, ניצור זואת ע"י פונקציית ה Switch. לדוגמא: PHP קוד:
כאן אנו מזינים שיש אפשרות לact להיות שלושה ערכים(addpoint, points, main), ואם לא הוגדר ערך תגדיר תעשה כך וכך. כמובן שנוכל להיות מתוחכמים יותר ע"י לולאה שיוצר את ה case ע"פ הקבצים הקיימים במחיצת "include". למידע נוסף אודות פונקצייה זואת בקרו ביחידה המסבירה על פונקציית Switch במדריך הרישמי של Php: http://www.Php.Net/Switch בהצלחה!, Ikki Last edited by Ikki; 08-10-05 at 21:06.. |
|
08-10-05, 19:21 | # 2 |
חבר וותיק
|
תודה רבה באמת!
ציפתי למדריך כזה- עוד לא קראתי הכול, אשמח אם תמשיך ותרחיב עוד על נושא האבטחה בPHP ! [= ויש לי שאלה קטנה. htmlspecialchars(); הפונקציה הזו יעיל לאבטחה כנגד סקריפטים זדוניים? S: והאם לאחר שימוש בה תהיה לי בעיה להכניס קודי BB? (לא בטוח שקוראים לזה קודי BB אבל אני מתכוון כמו כתב בולט,קו תחתון כמו שיש בפורום קודים מהירים כאלה). Last edited by satan; 08-10-05 at 19:25.. |
08-10-05, 19:26 | # 3 |
חסום
|
htmlspecialchars() אינו קשור להזרקות כתובת.
זה פקודה אשר מונעות קודי HTML בטקסט. כלומר אם תכתוב <b> זה יציג את זה כמו שזה בלי פעולת הטאגית(פשוט <B>), להבדיל מטאגי BBCode שהם טאגים אשר נכתבו ב PHP, כתבו פונקצייה שמחליפה זה הכל, וכמובן שהם לא מובנים אם אתה בונה מערכת, אתה צריך להוסיף אותם, או שתוריד אותם מאפשהוא(אם זה אפשרי) או שתבנה אותם. בהצלחה... Last edited by Ikki; 08-10-05 at 19:36.. |
08-10-05, 19:31 | # 4 | |
משתמש - היכל התהילה
|
ציטוט:
|
|
08-10-05, 19:34 | # 5 |
מ.תיכנות
|
זה שהגיב מעליי צודק, די מצומצם, אבל כל הכבוד על ההשקעה.
אבל - מה עם הזרקה דרך תיבות טקסט? יש עוד הרבה, ישנם כמה אפשרויות. בדיקת המחרוזת, אם היא תקינה [מבחינת תווים]. או, להכין פונקצייה שתתרגם את התווים לתווי HTML כלומר למשל & = & |
08-10-05, 19:36 | # 6 |
חסום
|
אכן, הזרקות הינו נושא נרחב.
במדריך זה הסברתי על סוג הזרקות מסוים. הסברתי על הזרקות כתובת. בהזדמנות אסביר על שאר הסוגים. *שחכתי בכותרת לרשום "הזרקות כתובת" ... Last edited by Ikki; 08-10-05 at 19:45.. |
09-10-05, 06:43 | # 7 | |
חבר וותיק
|
ציטוט:
זאת אומרת לפחות אני - לא ראיתי מדריכים כאלה בעיברית. תמשיך..!D: |
|
09-10-05, 08:44 | # 8 |
Fatal Error
|
1. הצפנה על הצפנה על הצפנה לא תורמת בכלום, היא רק מאיטה את פעולת הדף. אם אתה רוצה הצפנה מקסימלית קח אלגוריתם 512 ביט ולא MD5 או SHA-1
2. שיטת ה include שלך לכל פעולה ופעולה לא יעילה, במקום לאנקלד את הדף, ב switch היית יכול לשים את הפעולות שזה אמור לעשות (למשל - עדכון עמודה ב DB). 3. השיטה של יצירת משתנה פיקטיבי לא עוזרת לך בכלום 4. במוקדם או במאוחר ימצאו דרך לעקוף את השיטה שלך (סעיף 3) ומה לעשות, אין מנוס מבדיקת הקלט המתקבל - סטרינג, מספר, תאריך וכו'. 5. אם הייתי כותב מדריך כזה, הייתי מראה למה השמת גרשיים ונקודה פסיק תוקעת את השאילתא 6. במסדים מסויימים, כמו למשל SQL SERV אפשר להריץ פקודות אחרות למשל: PHP קוד:
7. אחרי קריאת המדריך פעמיים לא הבנתי איך השיטה שלך עוזרת למנוע sql injection 8. בהצלחה 9. לזה שמעלי - חפש פרוייקט בשם underwarrior או משהו כזה, יש להם מדריכים מצויינים בנושא ובעברית.. |
09-10-05, 12:54 | # 9 | |
חסום
|
ציטוט:
ב. האינקלוד ב Switch לצורך הדגמה, ושלא לדבר על הטעות האיומה שזה מאט!. להבא תקרא טוב את הכתוב("הזרקות כתובת") ואל תמהר להגיב בצורה כה שלילית, כי הטועה פה הוא אתה בלבד. סליחה על התגובה הכועסת אבל ממש מרגיז לקבל תגובה שלילית כאשר מדלגים על הכותרת וקוראים מה שרוצים!, כנראה אצתרך לפתוך מדריך "כיצד לחזור לכיתה א'?". |
|
09-10-05, 14:46 | # 10 | |
Fatal Error
|
ציטוט:
ב. תוכיח. אני טוען שזה מאט מאשר לבצע פעולות בדף עצמו במבנה switch ולפני שאתה אומר למישהו טועה, תעשה טוב טוב בדק בית, וקח לך כלל בנושא המדריכים - לא כמות אלא איכות. תכתוב מדריך איך לחזור לכיתה א' אם זה מה שעושה לך את זה, אני לא צריך את זה.
__________________
eLad |
|
חברים פעילים הצופים באשכול זה: 1 (0 חברים ו- 1 אורחים) | |
Tags |
אבטחה, מדריך למתקדמים, מדריך php |
כלים לאשכול | |
תצורת הצגה | |
|
|