Redakční systém Drupal jistě představovat nemusím. Je to velmi oblíbený a rozšířený program na správu obsahu webových stránek (WCMS). Při čtení jednoho článku na Latríně mne zaujala možnost převést parsování URL z .htaccess souboru přímo do PHP (Např. z /.../.../ udelat rubrika=...&clanek=...), což je i v Drupalu. Stáhl jsem si tedy poslední verzi a mrknul do ní.
Pak jsem otevřel pusu, vytřeštil oči...a..málem mi to zůstalo. Ve složce /includes/ totiž Drupal má soubory s koncovkou .inc a jak každý ví, Apache běžně soubory končící na něco jiného než php, php3, php4, atd. neposílá žádnému CGI ke zpracování, ale přímo je odešle klientovi. Takže klient si pak v klidu může prohlížet zdrojové php skripty. Drupal se sice snaží tomuto zabránit nastavením Apache v .htaccess souboru, jenže co když hosting .htaccess nepodporuje?? Co když si uživatel řádek s konfigurací smaže?
<FilesMatch ".(engine|inc|info|install|module|profile|po|schema|sh|.*sql|theme|tpl(.php)?|xtmpl)$|^(code-style.pl|Entries.*|Repository|Root|Tag|Template)$">
Order allow,deny
</FilesMatch;>
Osobně to považuji za velký bezpečnostní nedostatek, který jsem naposledy viděl u webu z roku 2001 (kde ale byla čitelná i ta hesla).
Řešení
Co by to programátorům udělalo, kdyby soubory přejmenovali na *.inc.php? A byl by pokoj...
Jediné štestí je, že soubory obsahující hesla jsou v jiném adresáři a mají normalní koncovku .php.
a je velky problem ked si utocnik stiahne skript, ktory je bezne dostupny?