Írjon a támogatásnak

E-mailben válaszolunk, általában két napon belül.

A Google reCAPTCHA visszaélés elleni védelemként ellenőrzi ezt a beküldést; ennek során adatok jutnak el a Google-hoz. A szkript csak az űrlap megnyitásakor töltődik be.

← Összes bejegyzés

Egy nyelvkód, amely Perlnek látszott

2026. augusztus 19-én a .htaccess fájlba felvettünk egy szabályt, amely letilt egy olyan fájlfajtát, amelyet soha nem szabad közvetlenül böngészőnek kiszolgálni: a szerkesztés után a webgyökérben ottmaradt forráskód-másolatokat — index.php.bak, egy elkóborolt config.py, vagy bármit, aminek szkriptkiterjesztése van, és amelynek forrását egy látogató futtatás helyett egyszerű szövegként letölthetné.

A szabály fájlkiterjesztésre illeszkedett: .php, .py, .rb, .pl, és még egy tucat másikra. .pl a Perl kiterjesztése. Ebben a projektben egyetlen sor Perl sincs — a szabály megelőző jellegű volt, nem egy létező fájl miatti javítás.

Körülbelül egy nappal később egy látogató jelezte, hogy a számlálók előnézetei nem működnek. Mindegyik, de csak egyetlen nyelven.

A másik „pl”

A stats4u.net látogatónként választ nyelvet, Accept-Language-egyeztetéssel, nem rögzített alapértelmezés szerint — a lengyelre állított böngésző a /pl/ oldalakat kapja közvetlenül, átirányítás nélkül, és ha semmi sem illeszkedik, a weboldal az angolra áll vissza. A lengyel gyakori találat: annyi látogató érkezik oda, hogy egy napnyi hibás miniatűr semmiképp sem maradhatott sokáig észrevétlen.

Minden dizájn-előnézet stílusonként és nyelvenként egy kis fájl: cache/preview/2900.pl.svg. A minta, amelynek egy something.pl fájlt — egy Perl-szkriptet — kellett volna elkapnia, arra is illeszkedett, ha a 2900.pl részt ez követte: .svg: egy stílusszám, egy nyelvkód, amely véletlenül ugyanúgy íródik, mint egy szkriptkiterjesztés, aztán a valódi fájltípus. Egy pont-pl-pont minta ezt a kettőt nem tudja megkülönböztetni.

2900.pl.svg403stílusszámnyelvkódfájltípus2900.en.svg200csak a nyelvkód más

A galériában minden .pl.svg és .pl.png előnézet 403 Forbidden választ kezdett adni. Minden más nyelv érintetlen maradt, mert a weboldal által használt többi nyelvkód közül egyik sem ütközik a kiterjesztéslista egyetlen bejegyzésével sem. Csak ez az egy.

Mi változott

pl kikerült a kiterjesztéslistából. Továbbra is letilt minden valódi szkriptkiterjesztést, amely miatt ennek a projektnek aggódnia kell; nyelvet viszont már nem tilt le.

Azért érdemes leírni, mert egyáltalán megtörténhetett: a fájlkiterjesztések listája és a nyelvkódok listája két különböző szókészletből származik, és semmi sem akadályozza meg, hogy egy kétbetűs bejegyzés egyszerre mindkettőt jelentse. Mielőtt bármelyik listát bővítenénk egy olyan weboldalon, ahol az útvonalban nyelvi előtag van, érdemes összevetni a másikkal. Ez az ellenőrzés itt elmaradt, és egy olvasó vette észre a hibás miniatűröket — ezért a lista mostantól megjegyzésben indokolja, miért nem szerepel benne a pl, így a következő rendrakás előbb találkozik az indokkal, mint a szabállyal.

Hirdetés