Skryté vlastnosti šablón
Každý, kto nechce nosiť uniformu, sa začne pre svoju Joomlu obzerať po nejakej menej štandardnej šablóne. Od uvoľnenia Joomly 1.5 už uplynul nejaký čas, tak je šablón k dispozícii čoraz viac. Menej skúsení používatelia sa však môžu dočkať nemilého prekvapenia v podobe skrytého obsahu…
Ak vás zaujíma, čo vo svojej šablóne máte, môžete ju prehľadať na výskyt reťazcov, ktoré sú nižšie uvedené v príkladoch kódu a potom si preveriť, čo vlastne robia… Najjednoduchší spôsob na nájdenie týchto sránd, je použitie nástroja grep:
grep --color -ri base64 *
Rada
Používatelia Windows môžu mať s použitím zmieňovaných nástrojov problém, tak môžu skúsiť cygwin priamo vo Windows, alebo radšej virtuálny Linux, napríklad pomocou VirtualBox.
base64
Prvý spôsob skrývania, s ktorým sa stretávam je využitie šifrovania base64, v PHP kóde môže vyzerať takto:
echo(base64_decode("zakódovaný_reťazec"));
Na dešifrovanie reťazca môžete využiť príkaz base64, ktorý je v Debiane súčasťou balíka coreutils. Tento príkaz rozkóduje reťazec kódovaný v base64, ktorý môže byť v súbore alebo poslaný na štandardný vstup programu. Keďže zakódované reťazce môžu byť dosť dlhé, príde mi spôsob so súborom schodnejší. V takom prípade stačí prekopírovať zakódovaný reťazec (bez úvodzoviek, ale celý!!!) do súboru, povedzme subor.txt a potom už len spustiť:
base64 -d subor.txt
Program vypíše dekódovaný reťazec na obrazovku, takže si ho môžete prezrieť a skontrolovať, či nerobí nejakú nežiadanú činnosť.
rot13
Iný spôsob je využitie šifrovania rot13, ktoré môže v PHP kóde vyzerať zase takto:
eval(str_rot13('zakódovaný_reťazec'));
Keďže toto šifrovanie len jednoducho presúva znaky, jeho dešifrovanie
je jednoduché pomocou nástroja tr. Nástroj tr pracuje len so
štandardným vstupom, ale i tak mi príde použitie súboru (opäť
subor.txt
) ako najjednoduchšia voľba, takže po prekopírovaní
zašifrovaného reťazca do súboru jeho obsah dekódujete pomocou:
cat subor.txt |tr 'a-zA-Z' 'n-za-mN-ZA-M'
Záver
Nepovažujem takéto skrývanie obsahu za veľmi férové, pretože najmä menej skúsení používatelia môžu mať problém s jeho odhalením. Na druhej strane chápem snahu autorov o predchádzanie neoprávnenému používaniu ich produktov, ale koho to naozaj zastaví? Najzaujímavejšie však vychádza takáto snaha v šablónach, ktoré sú uvoľnené pod GPL, ktorá zaručuje právo na zmenu kódu… Každopádne, ak takéto skryté vlastnosti v šablóne nájdete a nedokážete si s nimi poradiť, pouvažujte o šablóne inej, najlepšie od celkom iného autora!