Kód jazyka, ktorý vyzeral ako Perl
V tomto článku
Dňa 19. augusta 2026 sme pridali pravidlo do .htaccess blokujúce typ súboru, ktorý by sa nikdy nemal priamo poskytovať prehliadaču: zvyšné kópie zdrojového kódu ponechané po úprave v koreňovom adresári webu — index.php.bak, zatúlaný config.py, čokoľvek s príponou skriptovacieho jazyka, pri čom by si návštevník mohol načítať zdroj ako obyčajný text namiesto spustenia.
Pravidlo porovnávalo príponu súboru: .php, .py, .rb, .pl, a tucet ďalších. .pl je Perl. V tomto projekte nie je ani jediný riadok jazyka Perl — pravidlo bolo preventívne, neopravovalo existujúci súbor.
Približne o deň neskôr návštevník nahlásil, že náhľady počítadiel sú pokazené. Všetky, ale iba v jednom jazyku.
Druhé „pl“
stats4u.net vyberá jazyk pre každého návštevníka vyjednávaním Accept-Language, nie pevným predvoleným jazykom — prehliadač nastavený na poľštinu dostane /pl/ priamo, bez presmerovania, a angličtina je záložný jazyk webu, keď sa nič nezhoduje. Poľština sa zhoduje často: prichádza tam dosť návštevníkov na to, aby deň pokazených miniatúr nemohol zostať dlho nepovšimnutý.
Každý náhľad dizajnu je jeden malý súbor pre každý štýl a jazyk: cache/preview/2900.pl.svg. Vzor určený na zachytenie something.pl — skriptu Perl — zachytil aj 2900.pl nasledované .svg: číslo štýlu, kód jazyka, ktorý sa náhodou píše rovnako ako prípona skriptovacieho jazyka, a potom skutočný typ súboru. Vzor bodka-pl-bodka tieto dve veci nedokáže rozlíšiť.
Každý náhľad .pl.svg a .pl.png v galérii začal odpovedať 403 Forbidden. Každý iný jazyk zostal nedotknutý, pretože žiadny iný jazykový kód používaný týmto webom nekoliduje s položkou zoznamu prípon. Iba tento jediný.
Čo sa zmenilo
pl bolo odstránené zo zoznamu prípon. Stále blokuje každú skutočnú príponu skriptu, ktorej sa tento projekt má dôvod obávať; už neblokuje jazyk.
Oplatí sa to zapísať pre samotný dôvod, prečo sa to stalo: zoznam prípon súborov a zoznam jazykových kódov pochádzajú z dvoch odlišných slovníkov a nič nebráni dvojpísmenovej položke znamenať oboje naraz. Pred pridaním do ktoréhokoľvek zoznamu na webe s jazykovými prefixmi v ceste ho skontrolujte oproti druhému. Táto kontrola sa tu neurobila a na problém upozornil až čitateľ, ktorý si všimol pokazené miniatúry — preto má položka pl, ktorá v zozname chýba, teraz komentár s dôvodom, aby sa ďalšie upratovanie najprv stretlo s dôvodom a až potom s pravidlom.