En språkkod som såg ut som Perl
Den 19 augusti 2026 lade vi till en regel i .htaccess som blockerar en typ av fil som aldrig ska levereras direkt till en webbläsare: kvarblivna kopior av källkod som ligger kvar i webbroten efter en redigering — index.php.bak, en bortglömd config.py, allt med en skriptändelse där en besökare kunde hämta källkoden som ren text i stället för att köra den.
Regeln matchade på filändelse: .php, .py, .rb, .pl, och ett dussin till. .pl är Perl. Det här projektet innehåller inte en enda rad Perl — regeln var en försiktighetsåtgärd, inte en lösning för en fil som fanns.
Ungefär ett dygn senare rapporterade en besökare att förhandsvisningarna av räknare var trasiga. Alla, men bara på ett språk.
Det andra ”pl”
stats4u.net väljer språk för varje besökare genom förhandling via Accept-Language, inte med ett fast standardval — en webbläsare inställd på polska får /pl/ direkt, utan omdirigering, och engelska är det som webbplatsen faller tillbaka på när inget matchar. Polska är en vanlig träff: tillräckligt många besökare hamnar där för att en dag med trasiga miniatyrer aldrig skulle förbli obemärkt särskilt länge.
Varje förhandsvisning av en design är en liten fil per stil och språk: cache/preview/2900.pl.svg. Mönstret som skulle fånga something.pl — ett Perl-skript — matchade också 2900.pl följt av .svg: ett stilnummer, en språkkod som råkar stavas likadant som en skriptändelse och sedan den verkliga filtypen. Ett punkt-pl-punkt-mönster kan inte skilja de två åt.
Varje förhandsvisning för .pl.svg och .pl.png i galleriet började svara 403 Forbidden. Alla andra språk var opåverkade, eftersom ingen annan språkkod som webbplatsen använder krockar med en post i listan över filändelser. Bara den här.
Vad som ändrades
pl togs bort ur listan över filändelser. Den blockerar fortfarande alla verkliga skriptändelser som projektet har anledning att oroa sig för; den blockerar inte längre ett språk.
Värt att skriva ner, med tanke på varför det alls hände: en lista över filändelser och en lista över språkkoder kommer från två olika vokabulärer, och ingenting hindrar en post på två bokstäver från att betyda båda samtidigt. Innan du lägger till något i någon av listorna på en webbplats med språkprefix i sökvägen, kontrollera det mot den andra listan. Den kontrollen hade inte gjorts här, och det var en läsare som märkte trasiga miniatyrer som fick fram det — därför har pl:s frånvaro i listan nu en kommentar som förklarar varför, så att nästa städning möter skälet innan den möter regeln.