Keelekood, mis nägi välja nagu Perl
Sisust ja selle ülevaatamisest
Selles artiklis
19. augustil 2026 lisasime faili .htaccess reegli, mis blokeerib failiklassi, mida ei tohiks kunagi otse brauserile serveerida: pärast muutmist veebijuurikasse jäänud lähtekoodi koopiad — index.php.bak, eksinud config.py, mis tahes skriptilaiendiga fail, mille lähtekoodi saaks külastaja lihttekstina kätte selle käivitamise asemel.
Reegel sobitas faililaiendi järgi: .php, .py, .rb, .pl, ja tosin muud. .pl on Perl. Selles projektis pole ühtegi rida Perli — reegel oli ettevaatusabinõu, mitte parandus olemasolevale failile.
Umbes päev hiljem teatas külastaja, et loenduri eelvaated on katki. Kõik, aga ainult ühes keeles.
Teine „pl“
stats4u.net valib keele külastaja kohta Accept-Language läbirääkimise teel, mitte fikseeritud vaikimisi — poola keelele seatud brauser saab /pl/ otse, ilma ümbersuunamiseta, ja inglise keel on see, mille poole sait langeb, kui miski ei sobi. Poola on sage vaste: piisavalt külastajaid maandub seal, et päev katkiseid pisipilte ei jääks kauaks märkamata.
Iga kujunduse eelvaade on üks väike fail stiili ja keele kohta: cache/preview/2900.pl.svg. Muster, mis pidi püüdma something.pl — Perli skripti — sobitas ka 2900.pl , millele järgnes .svg: stiilinumber, keelekood, mis juhtub olema kirjutatud samamoodi nagu skriptilaiend, siis tegelik failitüüp. Punkt-pl-punkt muster ei suuda neid kahte eristada.
Iga .pl.svg ja .pl.png eelvaade galeriis hakkas vastama 403 Forbidden. Kõik teised keeled jäid puutumata, sest ükski teine siin kasutatav keelekood ei lähe kokku laiendiloendi kirjega. Ainult see üks.
Mis muutus
pl eemaldati laiendite loendist. See blokeerib endiselt iga tõelise skriptilaiendi, mille pärast sellel projektil on põhjust muretseda; see ei blokeeri enam keelt.
Seda tasub üles kirjutada põhjuse pärast, miks see üldse juhtus: faililaiendite loend ja keelekoodide loend pärinevad kahest erinevast sõnavarast ja miski ei takista kahetähelist kirjet tähendamast korraga mõlemat. Enne kummagi loendi täiendamist saidil, mille teel on keelepräfiksid, kontrollige seda teise vastu. Seda kontrolli polnud siin tehtud ja pinnale tõi selle katkiseid pisipilte märganud lugeja — seepärast pl-i puudumise juures loendis on nüüd kommentaar, mis ütleb miks, et järgmine korrastus kohtaks põhjust enne reeglit.