למניעת SQL Injection רצוי להשתמש בספרייה שתומכת ב- Parameter Binding, זה עדיף על פני הפונקציה שהצגת.
להגנה מפני XSS יש להשתמש בפונקציה htmlspecialchars, להבין מה אתה עושה ולהתנהג בהתאם, לא תמיד זה יספיק.
השיקול של האם לסנן בהזנה או בשליפה זה שיקול של ביצועים מול אבטחה, ברוב המקרים הפרש הביצועים זניח מאוד ולכן זה בסדר ובטוח יותר לסנן בשליפה.
הפונקציה שלך נמצאת על גבול ה- בסדר/לא טובה, היא עושה את אותן פעולות תמיד בלי שום קשר למה שבאמת צריך להעשות.
בהתעסקות עם קלט שהוא מספר יש שיטה נוקשה יותר שאומרת להחזיר שגיאה ולא להפוך אותו למספר כשהוא לא מספר, בהרבה מקרים זה בטוח ונכון יותר.
לצורך העניין הדוגמה שהצגת לא טובה, הבדיקה היחידה שאמורה להיות שם זה האם הקלט הוא מספר או לא - אם הוא לא מספר אז להחזיר שגיאה, אין שום צורך בכל הסינונים האלו, אם הוא לא מספר זה כבר יפול לבד.
|