יצירת קשר עם התמיכה

אנחנו משיבים בדוא״ל, בדרך כלל בתוך יומיים.

למניעת שימוש לרעה, Google reCAPTCHA בודק את הפנייה הזאת; נתונים נשלחים אל Google. הסקריפט נטען רק עם פתיחת הטופס הזה.

→ כל הרשומות

גיבוי בתיקיית השורש של האתר הוא דליפת קוד מקור

על התוכן ועל בדיקתו

במאמר הזה

לפני עריכת קובץ גדול, הצעד הטבעי הוא להעתיק אותו תחילה. cp index.php index.php.vor-aenderung, ואז לעבוד. אם הקובץ הזה נמצא בתיקייה ששרת האינטרנט מפרסם, קוד המקור כולו הפך כרגע לזמין להורדה כטקסט רגיל — פרטי גישה למסד הנתונים, סודות, כל מה שהקובץ מכיל.

השרת Apache מריץ index.php דרך PHP כי שמו מסתיים בסיומת .php. index.php.vor-aenderung אינו מסתיים בסיומת .php. הוא מסתיים בסיומת .vor-aenderung, שהשרת Apache מעולם לא שמע עליה, ולכן הוא פועל לפי ברירת המחדל ושולח את הבתים.

הכלל שרוב האנשים כותבים, ולמה אינו מספיק

ההגנה המקובלת היא רשימת סיומות אסורות: .bak, .orig, .save, .sql, .old. היא תופסת את הקובץ שחשבו עליו. בבדיקה כאן, הרשימה הזאת נתנה את התשובה הנכונה עבור probe.bak ואת התשובה הלא נכונה עבור כל אחד מאלה:

  • index.php.vor-xyz — איך זה קרה בפועל
  • index.php.2026-08-19
  • index.php.kopie
  • style.css.alt
  • index.php.1
שם קובץתשובהprobe.bak403index.php.vor-xyz200index.php.2026-08-19200index.php.kopie200style.css.alt200הרשימה הנאיבית תופסת אחד מתוך חמישה

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

להפוך את ההבחנה

הכלל שעובד אינו שואל אילו סיומות אסורות. הוא שואל שאלה מבנית: האם שם הקובץ הזה מכיל סיומת קוד מקור שאינה בסוף?

אם כן, זה עותק של משהו שנועד להרצה, בלי קשר למה שאומרת הסיומת שאחריו. index.php.anything מתאים. style.css.anything מתאים. התבנית מכסה את השמות שאיש עדיין לא המציא, וזאת כל המטרה.

בבדיקה מול השרת הפעיל היום, כל חמשת השמות שלמעלה מחזירים כעת 403, כולל אלה שאינם קיימים — הכלל דוחה את הצורה, לא את הקובץ.

החריג, ומה שהוא מלמד

לשם קובץ לגיטימי אחד כאן יש בדיוק את הצורה הזאת: משאבים שנדחסו מראש נכתבים בתור style.css.1787777226.gz, סיומת באמצע בכוונה. לכן הכלל כולל חריג צר יחיד למקטע מספרי שאחריו .gz, והקובץ הזה מחזיר 200 כראוי.

חריג כזה הוא המקום שבו הכללים האלה בדרך כלל משתבשים, ולכן כדאי לומר מה הופך אותו לבטוח: הוא צר מספיק כדי שלא יהיה אפשר לבנות כתובת index.php.something.gz שתחזיר את קוד המקור, כי המקטע האמצעי חייב להכיל ספרות בלבד. חריג רחב יותר — “כל מה שמסתיים ב־.gz” — היה מבטל את הכלל כולו.

והעצה הפשוטה ביותר נשארת זאת שהופכת את כל זה למיותר: יש לשמור גיבויים מחוץ לתיקייה המפורסמת. הכלל הוא רשת ביטחון ליום שבו שוכחים, ולא רישיון להפסיק להתעניין במקום שאליו מגיע העותק.

פרסומת