![]() |
ציטוט:
|
יקרש- ישבר, יקרוס.
וכן פניתי אליך. |
לא הבנתי למה אתה לא משתמש בINTVAL, דניאל, זה TYPE CASTING רגיל.
ולא הבנתי למה אמרת שהסקריפט יקרוס בגלל זה, אלמוג. מה הקשר? |
במקרה הזה אומנם לא.
אבל במקרה שבו אני מזין לתוך שאילתה מספר, ולא בודק אותו עם intVal או floatVal, השאילתה פשוט תגרום למערכת לקרוס[במידה והיא לא תיקנית]. מה גם שלפעמים צריך לשקול את המצב ובמקום לבדוק אם הנתון מספר[is_numeric או is_int etc..], הרבה יותר חכם לעשות intVal. מכוון שלפעמים כשהמשתמש לא מזין מספר הוא מפסיד מזה. אך כשהמספר נדרש יש לוודא שהערך הינו מספרי. החיים הם לא שחור לבן, לכל פעולה יש את המטרות שלה, אסור לשלול פונקציות סתם. |
תכינו לעצמכם דף.
ותכתבו בו, "אני יודע שכל הנתונים שמגיעים אליי - צריכים להיות מוגני XSS ו-SQL INJECTION" = הברחת תגי HTML ו-SQL. אצלי זה שחור לבן. מצידי, כל עוד אני יודע, ש-$this->input['val'] מוגן, לא אכפת לי לעשות, PHP קוד:
שחור ולבן, שחור ולבן. הרי אני יודע שכל מידע שמגיע אליי, לפחות בלי כל השינויים, אני בחיים - בחיים בחיים - לא אצטרך להציג אותו כ-HTML. אז למה לא לעבור עם לולאה על כל האינפוט ולסנן אותם? |
ולמה לא, לעבור סלקטיבית על אינפוט אחד שאתה רוצה לתקן?
לדוגמא, אצלי כבר הרבה זמן יושבת המחלקה Fetch בקוד. היא מטפלת לי בPOST, GET, COOKIES ומערכים שאני מגדיר ידנית. הפונקציות שהיא מכילה הן: is שמקבילה לisset is_empty שמקבילה לempty is_int שמבצעת המרה לINT ע"י TYPE CASTING is_bool, כמו למעלה is_string is_float והכי חשובה - secure - מבצעת החלפה של תווי HTML והזרקות XSS. עכשיו, בעת קריאה לדף, הכל נכנס לARRAY בצורת ברירת מחדל - ואם צריך, אני פשוט רושם $post->secure('val') ומקבל ערך מאובטח. למשל, לTEXTAREA אני לא עושה את זה. עכשיו בוא תסביר לי, איך $this->input['val'] מוגן, בלי לאבטח אותו אפילו פעם אחת? אתה טוען שלא צריך לבצע את הפעולה הזאת. |
אני אומר שהיא פועלת פאסיבית - יש לי קלאס, שמייובא בתחילת הקוד, שדואג לאבטח את הכל.
|
לא חכם במיוחד.. אני מדגיש את העניין של TEXTAREA, לדוגמא, שצריך בסה"כ addslashes.
|
ציטוט:
|
ציטוט:
לא נתקלת באחד כזה? |
כל הזמנים הם GMT +2. הזמן כעת הוא 02:07. |
מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ