![]() |
# 1 |
הוסטסניון
|
כיצד ניתן ללאבטחת את הGET?
כלומר...
ידוע שאפשר להוסיף קודים זדוניים בGET...כלומר במקום: index.php?p=134 אפשר להחליף ת134 בOR למשל או כל דבר אחר...אז איך אני יכול לעשות שקודם שהPHP יבדוק אם מה שהוא קלד הוא 100% מספר? ידוע שיש לדוגמה את האות e שתכלס היא גם "מספר" כי יש לך במתמתיקה ערך מספרי...אז איך אני יכול לעשות כך שהוא יקח אך ורק מספרים ? (אהה ושאלו יהיו מספרים שלמים בלבד...) אההה ויש לי עוד שאלה... נגיד ואני רוצה לעשות הוצאה של נתונים מהמסד מID שנמצא בכתובת...כלומר אני נכנס ככה: index.php?act=news&id=452 כיצד אני יכול לעשות כך שנגיד וכתבה מס' 452 לא נמצאת אז שידפיס שהכתבה לא נמצאת... Last edited by -VladK-; 01-06-06 at 06:31.. |
![]() |
![]() |
# 2 | |
משתמש - היכל התהילה
|
ציטוט:
אף פעם אל תבנה שאילתה באופן דינמי על-סמך ערכים שהשמשתמש מכניס, או יכול לשנות, ללא שזה עבר קודם מתודה לאימות הקלט. ככה, תבטיח את עצמך כנגד חלק גדול מהבעיות. כלל ברזל2- תבנה דפי שגיאה מותאמים אישית לכל שגיאה שעלולה להיות. מפה, זה כבר תלוי בארכיטקטורה של המערכת שלך. |
|
![]() |
![]() |
# 3 | |
הוסטסניון
|
ציטוט:
|
|
![]() |
![]() |
# 4 |
משתמש - היכל התהילה
|
ב"ה
א.POST מסוכן כמו GET, פשוט עם GET יותר קל להתעסק. אל תיתן לאדם לראות את השגיאות שחוזרות מהמסד, בפיתוח זה דבר חשוב שתראה אותן אבל אחרי כן זה יכול להיות מאוד מסוכן. אם אתה מצפה לקבל מספר תבדוק את זה עם is_numeric אם אתה מצפה לקבל מחרוזת תעשה החלפת תווים בעיתיים לתווי ה ASCII שלהם.
__________________
קו ישר, כי אפשר גם אחרת |
![]() |
![]() |
# 5 |
משתמש - היכל התהילה
|
צודק, היום המון אנשים מנסים למצוא באגים במערכות ופורטלים (בעיקר), ולרוב אפשר גם לנסות גם דרך ה$_GET, אך השגיאה שתופיעה ב$_GET בזמן שליפה לא כל כך קריטית לטעמי, ו.. יש מצב שזה יופיע רק אצל האדם שמנסה למצוא באגים ולהיעזר בהם, אבל בוא לא נהמר.
ישנן מספר פונקציות, אשר יעזרו לך לדעת אם ה$_GET מכיל -
הקוד הוא פשוט, וכתבתי לך קוד קל לדוגמא, PHP קוד:
אחרי שכתבת את הקוד הנ"ל, את מוגן לפי דעתי מהזרקות SQL ומניסיון להרוס את המערכת, כמובן אחרי שאתה רושם את הקוד, אתה רושם מיד אחריו את השיאלתה ואת השליפה, או את הקוד הרצוי. EDIT לגבי שאלתך השנייה, אני לא ממש הבנתי, אך בכל מקרה כתבתי הסבר, אממ, הבנתי מהשאלה, שאתה רוצה לדעת, אם קיים במסד הנתונים שלך מאמר / כתבה בעלת הID המצויין. עושים שימוש בmysql_num_rows() ובתנאי פשוט. כתבתי לך גם את השיאלתה וגם את השליפה, אם לא יעבוד, אני אעבוד על זה מאוחר יותר בlocalhost. PHP קוד:
Last edited by Eli-Hai; 01-06-06 at 08:07.. |
![]() |
![]() |
# 6 |
Fatal Error
|
בעיקרון במספרים זו דרך העבודה שלי:
קוד:
var nId = fCheckIsNumeric(Request.QueryString("nId")) || 0
__________________
eLad |
![]() |
![]() |
# 7 |
Whatever
|
PHP קוד:
__________________
תומר |
![]() |
![]() |
# 8 |
הוסטסניון
|
ומה הוא עושה?
|
![]() |
![]() |
חברים פעילים הצופים באשכול זה: 1 (0 חברים ו- 1 אורחים) | |
|
|