![]() |
איך לשפר את האבטחה באתר?
כרגע זה הקוד שמאחזר נתונים:
PHP קוד:
קראתי איפשהו על איזה שיטה שאתה מכניס משתנים עם סימני שאלה, כדאי לשנות לזה? מישהו מכיר? תודה. |
מה זה $link?
ואתה יכול לעשות דבר כזה לדעתי: PHP קוד:
|
ציטוט:
(אם מישהו רוצה להוסיף או משהו הוא מוזמן.) |
$id = intval($_GET['id']
יהפוך אותו להיות מספרי ואם יכניסו שם שטויות הוא יהפוך להיות 0 |
בקוד שהבאת יש חור אבטחה רציני.
header לא מבטל את פעולה הסקריפט. הדפדפן יכול "להתעלם" מה-Location, וכמובן - העיבוד ימשך. הדרך שבה אתה מזהה היא בסדר לחלוטין. אפשר גם להשתמש ב-intval, אבל שימוש ב-ctype_digit והפנייה לדף שגיאה נחשב עדיף - רק לא לשכוח לשים exit; / die(); אחרי ה-header |
עדיף לך לבדוק בדרך הזו:
PHP קוד:
|
אני רואה שתי אופציות חכמות, אחת להמיר את המשתנה לint (עדיף על ידי casting ולא על ידי intval, הרבה יותר מהיר) מה שחוסם לחלוטין את האופציה להכניס משתנה לא תקין. האופצייה השנייה היא לוודא תקינות בעזרת is_int וזהו.
אופציה 1: PHP קוד:
PHP קוד:
|
ציטוט:
PHP קוד:
תודה לכל המגיבים. |
ההבדל בין הפעולה exit ל-die() זה ש-exit מסיימת את פעילות הצד שרת ו-die() מסיימת אותה עם אפשרות לביצוע פעולה כלשהי. אני חושב שאתה יכול לעשות פשוט ככה:
PHP קוד:
|
ציטוט:
ואם אני משתמש ב-or die() זה שקול לזה שאני ארשום die() שורה מתחת? או שיש בזה חור אבטחה? |
כל הזמנים הם GMT +2. הזמן כעת הוא 15:43. |
מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ