מבוא ל-PHP ואיך הוא עובד - השפה שעדיין מריצה חצי מהאינטרנט¶
יש שפות תכנות שכל הזמן שומעים עליהן שהן "מתות", ו-PHP היא בטוח בראש הרשימה הזאת. הבעיה היא שהיא ממש לא מתה. היא רצה מאחורי חלק עצום מהאתרים שאתם נכנסים אליהם כל יום, כולל כמעט כל אתר וורדפרס בעולם. ומי שרוצה להבין איך אתרים באמת עובדים, ואיך פורצים אליהם, פשוט לא יכול לדלג על השפה הזו.
אז מה זה בעצם PHP¶
PHP היא שפת תכנות שרץ בצד השרת - Server-Side. זה אומר שהיא לא רצה בדפדפן שלכם כמו JavaScript, אלא על המחשב של החברה שמארחת את האתר. כשאתם נכנסים לעמוד שכתוב ב-PHP, השרת מריץ את הקוד, בונה דף HTML לפי מה שהקוד אומר לו, ושולח לכם רק את התוצאה הסופית. הדפדפן שלכם בכלל לא רואה שורת קוד PHP אחת.
זה שונה מהותית מ-HTML סטטי. בעמוד סטטי, כל מי שנכנס רואה בדיוק אותו דבר. בעמוד PHP, השרת יכול להחליט מה להציג לכל משתמש בנפרד - להראות לכם "שלום דנה" אם אתם מחוברים בתור דנה, לשלוף מוצרים ממסד נתונים, או לבדוק סיסמה שהזנתם בטופס.
איך זה נראה בפועל¶
קובץ PHP הוא בעצם קובץ HTML רגיל, עם קטעי קוד PHP משובצים בתוכו בין התגיות <?php ו-?>. זה מה שהופך אותה לשפה כל כך נגישה למתחילים - אפשר להתחיל מדף HTML פשוט, ופשוט להוסיף בתוכו לוגיקה בהדרגה:
כשהשרת מעבד את הקובץ הזה, הוא מריץ את הקוד בין התגיות, מכניס את הערך של המשתנה, ושולח לדפדפן רק את התוצאה - שורת HTML רגילה, בלי שום סימן שהיה שם קוד PHP בכלל.
למה PHP עדיין כל כך רלוונטית¶
הרבה מתכנתים חדשים מופתעים לגלות עד כמה PHP עדיין נפוצה, אבל הסיבה פשוטה:
- וורדפרס. מערכת ניהול התוכן הכי נפוצה באינטרנט כתובה כולה ב-PHP, וכל תוסף ותבנית עליה כתובים באותה שפה.
- קלות כניסה. אפשר להתחיל לכתוב אתר דינמי עם PHP תוך דקות, בלי להקים סביבת פיתוח מסובכת.
- תמיכה כמעט אוניברסלית. כמעט כל שירות אחסון אתרים תומך ב-PHP כברירת מחדל, מה שהופך אותה לבחירה טבעית לפרויקטים קטנים ובינוניים.
- מערכות ותיקות. הרבה עסקים ומוסדות עדיין מריצים מערכות שנבנו לפני שנים ב-PHP, ופשוט לא מחליפים אותן כי הן עובדות.
הקשר לפריצת אתרים¶
זה בדיוק המקום שבו PHP הופכת לרלוונטית מאוד למי שלומד אבטחת אתרים. חלק גדול מהאתרים הפגיעים שתפגשו בעולם האמיתי, ובאתרי תרגול שנועדו ללמד פריצת אתרים, בנויים על PHP. יש לזה כמה סיבות טובות:
- מערכות PHP ותיקות רבות נכתבו לפני שהיו סטנדרטים ברורים לאבטחת קלט, אז הן מלאות בדוגמאות אמיתיות לחולשות כמו הזרקת SQL והעלאת קבצים לא מאובטחת.
- וורדפרס ותוספיו הם יעד ענק ומוכר, כי כל חולשה שנמצאת בתוסף פופולרי משפיעה על אלפי אתרים בבת אחת.
- הדרך שבה PHP מטפלת בקלט מהמשתמש, בעיבוד טפסים ובניהול קבצים, יוצרת נקודות תורפה קלאסיות שחוזרות על עצמן שוב ושוב באתרים שונים.
מי שמבין איך PHP מעבדת בקשה, לוקחת קלט מטופס, ומדברת עם מסד הנתונים, מבין הרבה יותר טוב איפה בדיוק לחפש את החולשה כשבודקים אתר אמיתי. זו לא רק שפת תכנות, זו למעשה מפה להבנת איך חלק גדול מהאינטרנט בנוי מבפנים.
איך מתחילים ללמוד את זה נכון¶
אין צורך להפוך למומחי PHP כדי להשתמש בידע הזה. מספיק להבין את התחביר הבסיסי, איך משתנים וטפסים עובדים, ואיך השרת מתקשר עם מסד נתונים. משם, ברגע שאתם רואים קטע קוד PHP באתר אמיתי, אתם כבר יודעים לקרוא אותו ולשאול את השאלות הנכונות - מאיפה מגיע הקלט הזה, והאם מישהו טרח לבדוק אותו.
אם אתם רוצים להעמיק בנושא ולעבור על כל התחום בצורה מסודרת ומעשית, כולל איך מנתחים אתרי PHP אמיתיים בחיפוש אחר חולשות, מוזמנים לעבור על קורס פריצת אתרים למתחילים.
ואם משהו נשאר לא ברור, יש קהילה שמחה לעזור ולענות על שאלות.
לסיכום¶
PHP רחוקה מלהיות שפה מתה, והיא בהחלט לא שפה שכדאי לדלג עליה אם אתם רציניים לגבי הבנת אבטחת אתרים. היא פשוטה מספיק כדי ללמוד אותה מהר, ונפוצה מספיק כדי שההבנה שלה תשרת אתכם בכל אתר אמיתי שתפגשו בדרך.