![]() |
אבטחה - SQL
איך אני יכול לאבטח את השאילתות שלי יותר?
ככה הן נראות עכשיו: PHP קוד:
תודה. ועוד משהו, איך עושים שה-php לא יציג שגיאות של sql ? |
קודם כל תשנה את הפונקציה mysql_escape_string ל mysql_real_escape_string
|
ציטוט:
יש עוד? |
אמממ בעקרון אין הרבה.
אני אישית הרבה פעמים מטפל במספרים לדוגמה בעזרת is_numeric (מערכים בעזרת is_array וכו'), אני בודק בעזרת mysql_num_rows שכמות התוצאות שונה מ0 ולפעמים עוד דברים בהתאם למקרה. |
PHP קוד:
|
ציטוט:
|
ציטוט:
אבל יש הרבה פעמים שבהם אם המשתמש מנסה לרמות אז מבחינתי זו "בעיה שלו". ותעיף את ה"מאבטח אתרים" מהחתימה שלך. |
ציטוט:
קרעת אותי |
ציטוט:
ולמה בדיוק שאני אעיף את זה? |
ציטוט:
אם הפלט לא תקני צריך להחזיר ארור למשתמש/להעביר לעמוד אחר או לטפל בזה בדרך כלשהי. לא לשנות את הבעיה... |
ציטוט:
לגבי האימות קלט- זה תלוי, לא תמיד מעניין אותי להציג למשתמש שלי שגיאה, לפעמים זה יהיה מבחינתי "בעיה שלו". |
לא על כל שטות צריך להעיף למשתמש הודעת שגיאה / להרוג את הסקריפט.
אם המשתמש הכניס כמה אותיות ומספר בתור מס' עמוד, והקלט מהמשתמש עבר סינון כלשהו ע"י mysql_real_escape_string לדוגמא, אין צורך לזרוק שגיאה שהוא לא הכניס מס'. פשוט לחפש את מה שהוא הכניס במסד, בדיוק כאילו היה מס', ולזרוק שגיאה אם מס' העמוד לא נמצא (ובמידה ויש רק מספרים - תזרק שגיאה בכ"מ, כי אין עמוד עם אותיות). |
אלמוג:
אין שום פסול בהגדרה "מאבטח אתרים", עכשיו אתה מוזמן להתייחס ולעשות מה שבא לך עם מה שאני אומר. תומר: הרי בכל מקרה תוצג שגיאה, אז למה סתם לשלוח בקשה למסד ולבצע פעולות לא נחוצות אם אתה יודע מראש שהעמוד לא קיים? אתה פשוט מודיע למשתמש שהקלט שהוא הכניס לא תקין/ לא קיים עמוד כזה וגומר עניין. |
ציטוט:
זה לא גן ילדים, אם אתה ילד ורוצה לעבוד בזה אף אחד לא מנוע ממך, רק מבקשים שלא תמציא מושגים ותטעה אחרים. |
כל הזמנים הם GMT +2. הזמן כעת הוא 20:02. |
מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ