אינטרנט ישראל
  • ראשי
  • אודות רן בר-זיק ואינטרנט ישראל
  • ערוץ טלגרם
  • קבלו עדכונים במייל
  • התחברו אלי בטוויטר
  • התחברו אלי בלינקדאין
  • ספר ג’אווהסקריפט
  • ראשי
  • אודות רן בר-זיק ואינטרנט ישראל
  • ערוץ טלגרם
  • קבלו עדכונים במייל
  • התחברו אלי בטוויטר
  • התחברו אלי בלינקדאין
  • ספר ג’אווהסקריפט
ראשי » פיתוח אינטרנט » פתרונות ומאמרים על פיתוח אינטרנט » פילטור קלט ב-PHP

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

רן בר-זיק יולי 1, 2012 7:58 am אין תגובות

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

כדאי תמיד להשאר מעודכנים! הרשמו לעדכונים של האתר במייל! - המייל יישלח כל יום ראשון בעשר בבוקר ויכיל אך ורק את המאמרים שהתפרסמו באינטרנט ישראל. ללא ספאם, ללא הצפות, ללא בלגנים. אם יש לכם טלגרם, בדקו את ערוץ הטלגרם של האתר שבו אני מעדכן על פוסטים חדשים 🙂 אם אתם רוצים ללמוד תכנות באופן מקיף ומסודר, הצטרפו לאלפי הלומדים בפרויקט "ללמוד ג'אווהסקריפט בעברית" שמלמד לתכנת בג'אווהסקריפט, ב-Node.js ובריאקט. הפרויקט הוא הפרויקט הספרותי המוביל בהדסטארט. בשיתוף הקריה האקדמית אונו.

למרות שזה עניין די בסיסי, חשבתי שיהיה נחמד לדבר על איך עושים פילטור קלט ב-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 שאפשר להטמיע, אבל הוא חשוב לא פחות.

כדאי תמיד להשאר מעודכנים! הרשמו לעדכונים של האתר במייל! - המייל יישלח כל יום ראשון בעשר בבוקר ויכיל אך ורק את המאמרים שהתפרסמו באינטרנט ישראל. ללא ספאם, ללא הצפות, ללא בלגנים. אם יש לכם טלגרם, בדקו את ערוץ הטלגרם של האתר שבו אני מעדכן על פוסטים חדשים 🙂 אם אתם רוצים ללמוד תכנות באופן מקיף ומסודר, הצטרפו לאלפי הלומדים בפרויקט "ללמוד ג'אווהסקריפט בעברית" שמלמד לתכנת בג'אווהסקריפט, ב-Node.js ובריאקט. הפרויקט הוא הפרויקט הספרותי המוביל בהדסטארט. בשיתוף הקריה האקדמית אונו.
PHP

השארת תגובה

ביטול

ללמוד ג'אווהסקריפט בעברית

ללמוד לתכנת ג'אווהסקריפט בעברית שגייס יותר משלוש מאות אלף שקל ולמעלה מ-2000 תומכים - בואו ללמוד עכשיו איך לתכנת.

רשימת הנושאים
  • מדריכים
    • ריאקט
    • ECMAScript 6
    • ES20XX
    • Node.js
    • Express
    • רספברי פיי
    • Babel
    • docker
    • MongoDB
    • Git
    • לימוד MySQL
    • SASS
    • jQuery
    • CSS3
    • HTML 5
    • SVN
    • LESS
  • פיתוח אינטרנט
    • פתרונות ומאמרים על פיתוח אינטרנט
    • jQuery Scripts
    • jQuery למתקדמים
    • יסודות בתכנות
    • נגישות אינטרנט
  • חדשות אינטרנט
  • מידע כללי על אינטרנט
    • רשת האינטרנט
    • בניית אתרי אינטרנט
  • rss logo

    לכל המאמרים

    לכל המאמרים שפורסמו באינטרנט ישראל משנת 2008 ועד עכשיו.
  • rss logo

    RSS Feed

    משתמשים בקורא RSS? אם כן, עקבו אחרי אינטרנט ישראל באמצעות פיד ה-RSS!
    מה זה RSS?
  • Twitter logo

    עקבו אחרי בטוויטר

    בחשבון הטוויטר שלי אני מפרסם עדכונים מהירים על חדשות בתחום התכנות והיזמות, התרעות על מצבי חירום ורכילות בוערת על תחום הווב.
    מה זה טוויטר?
  • facebook like image

    ערוץ הטלגרם של אינטרנט ישראל

    בערוץ הטלגרם של אינטרנט ישראל אני מפרסם את הפוסטים של באתר וכן עדכונים טכנולוגיים נוספים.
    מה זה טלגרם?
  • github logo

    הפרויקטים שלי בגיטהאב

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

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

כל הזכויות שמורות לרן בר-זיק ולאינטרנט ישראל | מדיניות הפרטיות של אתר אינטרנט ישראל | אתר אינטרנט ישראל נגיש לפי תקן WCAG 2.0 AA | הצהרת הנגישות של האתר | אבטחת מידע ודיווח על בעיית אבטחת מידע

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