פילטור קלט ב-PHP

הסבר קצר מאד על פילטור נכון של קלט ב-PHP ומה הדרך המהירה והיעילה ביותר לעשות אותו.

למרות שזה עניין די בסיסי, חשבתי שיהיה נחמד לדבר על איך עושים פילטור קלט ב-PHP. יש לא מעט פונקציות, קטעי קוד ודוגמאות ברשת. למרבה הצער רובן ככולן לא נכונות, כיוון שהן לא משתמשות בפילטרים המובנים של PHP. אני אדגים כאן איך משתמשים בפילטרים המובנים – דבר שחוסך המון המון כאב ראש.

אז קודם כל – מה זה פילטר? פילטר עוזר לנו כאשר אנחנו מקבלים קלט מהמשתמש וצריכים לעשות איתו משהו. בעולם אידיאלי, היינו יכולים לסמוך על מה שמגיע מהמשתמש. אבל בעולם של האקרים, קראקרים וקאקערים, ��נחנו צריכים להגן על הקוד שלנו ולבדוק כל מה שמגיע מהמשתמש. יש לנו שתי דרכים עיקריות לעשות את זה: הראשונה היא סניטציה – לוודא שאין בקלט משהו שיכול להזיק לנו. השניה היא פילטור – לומר מה אנחנו רוצים ואם הקלט לא עומד בכללים – להפיל אותו.
למרות שלפעמים צריך להשתמש בסניטציה, אני מעדיף להשתמש בפילטור. הרבה יותר קל לומר מה אנחנו רוצים מאשר מה אנחנו לא רוצים ושיכול להזיק לנו. הרבה יותר קל לי למשל לבוא ולומר שהקלט צריך להיות מייל (ואם הוא לא מייל, אז לבעוט אותו לכל הרוחות) מאשר להתחיל לשבור את הראש איך מישהו יכול להכניס לי קלט שיעשה לי MySQL injection או איזה XSS עסיסי.

ב-PHP מגרסה 5 יש לנו דרך נפלאה להריץ פילטרים – באמצעות PHP filters. איך משתמשים בהם? הכי טוב עם דוגמה מאד מאד פשוטה (ותסלחו לי שאני משתמש בדוגמה כזו) :


$email = $_GET['email'];
if(filter_var($email, FILTER_VALIDATE_EMAIL)) {		
	print 'Email OK!';
} else {
	print 'Email is not OK';
	die;
}

מוקד העניין הוא פונקצית filter_var שמקבלת שני פרמטרים – מחרוזת טקסט כלשהי וקבוע כלשהו שלפי שמו אפשר להבין שהוא הוא הפילטר שלנו שבמקרה הזה מפלטר לפי מייל (ואם לא הבנתם ש-FILTER_VALIDATE_EMAIL מפלטר מייל, סימן שאתם במקצוע הלא נכון). במידה והפילטור עובר תקין, מוחזר לנו TRUE ובמידה ולא, מוחזר FALSE. מה אנחנו עושים? זה כבר תלוי בסקריפט שלנו.

נשאלת השאלה אילו עוד פילטרים יש חוץ מ-FILTER_VALIDATE_EMAIL? רשימה מלאה של הפילטרים נמצאת בדוקומנטציה של PHP וכדאי להציץ בה. בפעם הבאה שאתם מפלטרים פלט, אפשר פשוט להשתמש בפילטרים האלו. אולי החלק הזה של הקוד לא זוהר כמו UI שאפשר להטמיע, אבל הוא חשוב לא פחות.

פוסטים נוספים שכדאי לקרוא

חדשות אינטרנט

אז מה הקטע עם Moltbook?

הרשת החברתית של ״הבוטים״ מכה גלים ברשת. בואו נחטט בקבצי הקוד שלה כדי להבין מה קורה פה ומה זה ההייפ הזה

יסודות בתכנות

backward compatibility ו forward compatibility

שלושה עקרונות חשובים בפיתוח תוכנה שכדאי להכיר במיוחד בעידן הבינה המלאכותית והקוד המהיר.

בינה מלאכותית

hooks של LLMים שעורכים קוד

הסבר על הוקים: הפעלה אוטומטית של פקודות שקיימת בכל האייג׳נטים שעורכים קוד (כלומר קורסור, קלוד קוד, קודקס וחבריהם) שיכולה מאד לסייע בפיתוח.

בינה מלאכותית

Agent skills

איך בדיוק הוראות כלליות ופרטניות עובדות בסביבת אייג׳נט? נדגים עם קורסור ונציץ גם מאחורי הקלעים של הנטוורק.

גלילה לראש העמוד