Kategória: Rozšírenia

Zmenené: 24. august 2011

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…

Obsah článku

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!