Obrati se podršci

Odgovaramo e-poštom, obično u roku od dva dana.

Google reCAPTCHA provjerava ovu prijavu radi zaštite od zlouporabe; podaci se šalju tvrtki Google. Skripta se učitava tek kada se otvori ovaj obrazac.

← Sve objave

Jezični kod koji je izgledao kao Perl

O sadržaju i njegovoj provjeri

U ovom članku

Dana 19. kolovoza 2026. dodali smo pravilo u .htaccess koje blokira vrstu datoteka koja se nikada ne bi smjela isporučivati izravno pregledniku: zaostale kopije izvornog koda u korijenskom web-direktoriju nakon uređivanja — index.php.bak, zalutala datoteka config.py, bilo što s nastavkom skriptnog jezika odakle bi posjetitelj mogao dohvatiti izvorni kod kao običan tekst umjesto da se izvrši.

Pravilo je prepoznavalo nastavak datoteke: .php, .py, .rb, .pl, i desetak drugih. .pl je Perl. U ovom projektu nema ni jednog retka jezika Perl — pravilo je bilo mjera opreza, a ne popravak postojeće datoteke.

Otprilike dan kasnije posjetitelj je prijavio neispravne pretpreglede brojača. Sve, ali samo na jednom jeziku.

Drugi „pl“

stats4u.net bira jezik za svakog posjetitelja pregovaranjem Accept-Language, a ne fiksnom zadanom postavkom — preglednik postavljen na poljski dobiva /pl/ izravno, bez preusmjeravanja, a engleski je rezervni jezik web-mjesta kada nema podudaranja. Poljski je često podudaranje: dovoljno posjetitelja dolazi na njega da cijeli dan neispravnih sličica ne bi dugo ostao nezamijećen.

Svaki pretpregled dizajna mala je datoteka za svaki stil i jezik: cache/preview/2900.pl.svg. Uzorak namijenjen prepoznavanju something.pl — skripte jezika Perl — prepoznavao je i 2900.pl iza kojeg slijedi .svg: broj stila, jezični kod koji se slučajno piše isto kao nastavak skriptnog jezika, a zatim stvarna vrsta datoteke. Uzorak točka-pl-točka ne može razlikovati to dvoje.

2900.pl.svg403broj stilajezični kodvrsta datoteke2900.en.svg200razlikuje se samo jezični kod

Svaki pretpregled .pl.svg i .pl.png u galeriji počeo je odgovarati s 403 Forbidden. Svaki drugi jezik ostao je netaknut jer nijedan drugi jezični kod koji ovo web-mjesto koristi ne kolidira sa stavkom na popisu nastavaka. Samo taj jedan.

Što se promijenilo

pl uklonjen je s popisa nastavaka. Pravilo i dalje blokira svaki stvarni skriptni nastavak zbog kojeg ovaj projekt ima razloga brinuti; više ne blokira jezik.

Vrijedi zapisati zašto se to uopće dogodilo: popis nastavaka datoteka i popis jezičnih kodova dolaze iz dvaju različitih rječnika, a ništa ne sprječava dvoslovni unos da istodobno znači oboje. Prije dodavanja na bilo koji popis na web-mjestu s jezičnim prefiksima u putanji provjerite ga prema drugom popisu. Ta provjera ovdje nije bila napravljena, a propust je postao vidljiv kada je čitatelj primijetio neispravne sličice — zato se izostanak oznake pl, uz razlog, sada navodi u komentaru kako bi sljedeće pospremanje naišlo na razlog prije nego na pravilo.

Oglas