קוד שפה שנראה כמו Perl
במאמר הזה
ב־19 באוגוסט 2026 הוספנו כלל לקובץ .htaccess שחוסם סוג קובץ שלעולם אין להגיש ישירות לדפדפן: עותקי קוד מקור שנשארו בתיקיית השורש של האתר אחרי עריכה — index.php.bak, קובץ תועה מסוג config.py, וכל דבר עם סיומת סקריפט שבו מבקר יכול לקבל את המקור כטקסט רגיל במקום להריץ אותו.
הכלל התאים לפי סיומת קובץ: .php, .py, .rb, .pl, ועוד כתריסר סיומות. .pl היא Perl. בפרויקט הזה אין אפילו שורת Perl אחת — הכלל היה אמצעי זהירות, לא תיקון לקובץ שהיה קיים.
כעבור יום בערך, מבקר דיווח שהתצוגות המקדימות של המונים מקולקלות. כולן, אבל רק בשפה אחת.
ה־“pl” האחר
השירות stats4u.net בוחר שפה לכל מבקר במשא ומתן Accept-Language, ולא לפי ברירת מחדל קבועה — דפדפן שמוגדר לפולנית מקבל /pl/ ישירות, ללא הפניה, ואנגלית היא השפה שאליה האתר חוזר כשאין התאמה. פולנית היא התאמה נפוצה: מספיק מבקרים מגיעים לשם כדי שיום של תמונות ממוזערות תקולות לא יישאר בלי שיבחינו בו לאורך זמן.
כל תצוגה מקדימה של עיצוב היא קובץ קטן אחד לכל סגנון ושפה: cache/preview/2900.pl.svg. התבנית שנועדה לתפוס something.pl — סקריפט Perl — התאימה גם לערך 2900.pl ואחריו .svg: מספר סגנון, קוד שפה שבמקרה נכתב כמו סיומת סקריפט, ואז סוג הקובץ האמיתי. תבנית של נקודה־pl־נקודה אינה יכולה להבחין בין השניים.
כל תצוגה מקדימה מסוג .pl.svg ומסוג .pl.png בגלריה התחילה להחזיר 403 Forbidden. כל שפה אחרת נשארה כפי שהיא, כי שום קוד שפה אחר באתר הזה אינו מתנגש עם רשומה ברשימת הסיומות. רק האחד הזה.
מה השתנה
pl הוסרה מרשימת הסיומות. היא עדיין חוסמת כל סיומת סקריפט אמיתית שיש לפרויקט סיבה לחשוש ממנה; היא כבר אינה חוסמת שפה.
כדאי לתעד מדוע זה קרה מלכתחילה: רשימת סיומות קבצים ורשימת קודי שפה מגיעות משני אוצרות מילים שונים, ושום דבר אינו מונע מרשומה בת שתי אותיות להיות שניהם בעת ובעונה אחת. לפני שמוסיפים לאחת הרשימות באתר עם קידומות שפה בנתיב, יש לבדוק אותה מול האחרת. הבדיקה הזאת לא נעשתה כאן, וקורא שהבחין בתמונות ממוזערות תקולות הוא שחשף זאת — ולכן הסיומת pl, שהוסרה מהרשימה, מלווה כעת בהערה שמסבירה מדוע, כדי שהסידור הבא יפגוש את הסיבה לפני שיפגוש את הכלל.