Zakázání PHP scriptů

Po vyšetření nemalého počtu hacků webových stránek, jsem si všiml jedné opakující se spojitosti. Na napadeném webu byl velmi často nahraný zákeřný PHP soubor ve složce určené pro nahrávání obrázků.

Nezávisle na redakčním systému, problém bývá ve WordPressu, Joomle i Drupalu. Dost často jsou soubory pojmenovány, aby to vypadalo, že jsou součástí systému. Problém je, že zákeřný PHP soubor dokáže na webu způsobit bezpečnostní katastrofu.

Bezpečnost WordPressu

O to, aby se na web takový soubor nedostal, se starají bezpečností experti v aktualizacích WordPressu. Pravidelně aktualizovaný WordPress se dá považovat za relativně bezpečný redakční systém. Občas se ale nějaká bezpečnostní chyba najde a útočníkovi se podaří nějaký zákeřný PHP soubor nahrát. Zde se však nabízí elegantní řešení, jak ze zákeřného souboru udělat soubor neškodný. Řešením je zakázání spouštění PHP souborů ve složce určené k nahrávání obrázků a dalších médií.

Blokování

Zablokování PHP pomocí .htaccess

Pomocí FTP klienta otevřete na svém hostingovém serveru složku pro nahrávání médií. Ve WordPressu jde o složku /wp-content/uploads/. V této složce vytvořte soubor .htaccess do kterého vložte následující řádky. V názvu souboru je opravdu tečka.

<Files *.php>
deny from all
</Files>

Tyto řádky zamezí přístupu k souborům s příponou php.

Zakázaní PHP pomocí serverové konfigurace

Webový server Apache je úžasný pro svoje možnosti konfigurace. Pomocí pár řádků se dají definovat složky, pro které je zpracování PHP vypnuto. Následující řádky vložte do svojí konfigurace virtualhostu. Cestu k adresáři uploads si samozřejmě musíte upravit podle sebe.

<Directory /public_html/wp-content/uploads/>
 php_admin_flag engine off
</Directory>

Tento návod neřeší již napadený web. Jde jen o preventivní opatření, které zamezí poměrně častým útokům.