כתיבת קוד בטוח – בפלטפורמת מג'נטו ובכלל

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

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

ארגון OWASP

בשנת 2001 קם ארגון חדש לא למטרות רווח בשם OWASP, ראשי התיבות שלו הם  Open Web Application Security Project.
הארגון הוקם ללא מטרות רווח למטרה של מתן תמיכה גלובלית להפעלה, הרצה ותחזוק מערכות בצורה הכי בטוחה שיש.

OWASP Logo
OWASP Logo

OWASP מפרסם כל שנה את 10 האיומים הכי פופולריים של תקיפות סייבר ברחבי העולם, אני אעבור על חלק מהרשימה וארשום את הדרכים הבסיסיות להתגוננות מפניהם.

SQL Injection

כשמקבלים input ממשתמש חשוב לסנן אותו מתווים לא חוקיים שיכולים גם לכלול סקריפטים למיניהם או שאילתות MySql.

חשוב לציין שהסינון לא יעשה ע"י רשימה שחורה אלא רשימה לבנה.

הרבה יותר קשה ובנוסף רע לביצועים ליצור רשימה שחורה של מה אני לא רוצה שייכנס מאשר לומר "תאשר רק ל-א,ב,ג",
רשימה לבנה לדוגמא:

ניתן בנוסף למצוא את ההמלצות של OWASP לSQL Injection פה.

אחד מהפתרונות שלהם זה להשתמש בParameterized Queries מה שאומר שלא יהיה ניתן להתעסק עם השאילתא לDB.

הדרך של מג'נטו

מג'נטו מממשת את הדרך הזאת ואפשר לראות זאת בדוגמא הבאה:

כמובן שלא מומלץ לכתוב כך את הקוד שלכם אלא להשתמש במודולים המובנים של מג'נטו שחוסכים את הכאב ראש.

Cross-site Scripting – XSS

הבעיה הזאת היא המשך ישיר לSQL Injection,

תוקף יכול להכניס קוד זדוני לתוך הDB שבעצם יוגש לכל המשתמשים באתר ולעשות מגוון דברים מעניינים.
קחו לדוגמא את הקוד הבא:

ובואו נניח שהתוקף הזין בתור תגובה את הטקסט הבא:

אני מקווה שהבנתם את הפואנטה.

הודעות שגיאה מותאמות אישית

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

שגיאה המתארת את סוג השרת מערכת ההפעלה והפורט
שגיאה המתארת את סוג השרת מערכת ההפעלה והפורט

הדרך הטוב ביותר להתמודד עם זה היא לתת לגולשים הודעות שגיאה מותאמות אישית, ולמעשה זה גם נראה הרבה יותר טוב.

ניתן לקבוע את הקובץ אליו ילך השרת בשגיאת 404 בקובץ .htaccess:

הדרך של מג'נטו

מג'נטו עושה את זה קצת אחרת, קודם כל מתבצע חיפוש אחר router שמתאים לurl שביקשו, אם אין אף אחד תואם המשתמש מועבר לדף 404 מותאם שניתן לקסטם בתיקיית errors.

2 thoughts to “כתיבת קוד בטוח – בפלטפורמת מג'נטו ובכלל”

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *