Jak se bránit nájezdům robotů #1

V rubrice: Tutoriály

Připravuji novou sérii článků o tom, jak se s WordPressem bránit proti nájezdům robotů. Zatím ještě netuším, kolik bude mít dílů (a zda ta číslovka bude vůbec větší než jedna), ale sám se s tímto problémem teď potýkám, takže bude vycházet z reálných zkušeností.

Problém je následovný – WordPress je velmi rozšířený a všichni roboti mají dobrou představu, jak se chová. Ano, můžete si ho rozšířit mnoha pluginy, ale základní jádro zůstává a toho právě tito roboti využívají. Pokud WordPress pravidelně aktualizujete a máte silné heslo, tak vás pro vás nejsou brutal force útoky přílišnou bezpečnostní hrozbou. Problém nastane ve chvíli, když jednou se dvou zmíněných pravidel nesplníte.

Všichni ví, jaký máte WordPress

WordPress ve výchozím stavu zobrazuje v hlavičce o jakou verzi se jedná (dá se vypnout pluginem). Díky tomuto tagu vám google na webmaster tools posílá informaci o tom, že byste si svoje CMSko měli updatovat. Já mám například na webu:

<meta name="generator" content="WordPress 4.1" />

Díky takové nenápadné informaci mohou roboti poznat, na jaké verzi běžíte a zvýšit tak šance na prolomení vaší obrany kvůli už známým bugům, který byly opraveny v dalších verzích. Při brutal force útocích se nezkoušejí roboti zalogovat jen user admin, ale testují například i název domény. Rozhodně nemějte heslo ve stylu password1234 nebo pass a podobně. Poměrně jednoduchý způsob, jak se tomu vyhnout, je přejmenovat soubor wp-login.php. Roboti pak ani nebudou vědět, kde se přihlašovat. Není to úplně košer, proto se tomu chci vyhnout.

Ačkoliv můžete být proti brutal útokům chráněni silným heslem, pořád vám roboti naprosto zbytečně zatěžují web. Na mém blogu je 75% hitů ze zahraničí a celkem 25% jich šlo přímo na soubor wp-login.php, což je neúnosně vysoké číslo.

Pluginem k větší ochraně

Jako první jsem se rozhodl vyzkoušet Wordfence Security. Plugin mi přijde trochu předimenzovaný a má funkce, které vůbec nevyžiji – jako je například cache stránek – ale zase má několik zajímavých funkcí, kvůli kterým si vysloužil hlubší testování.

Automaticky scanuje soubory WordPressu a hledá v nich viry. Všechny problémy odesílá na vaši emailovou adresu, takže jakmile budete infikování, rychle se to dozvíte. Skvělou funkcí je rozhodně Live traffic. Díky ní sledujete všechny hity směřující na váš web a můžete si vyfiltrovat lidi, roboty, pokusy o přihlášení či chybové stránky. Díky tomu získáte jasnou představu, co se vlastně děje a z jakých zemí a IP adres vůbec pochází útoky. Navíc získáte dobrou představu o tom, zda lidé nehladají něco, co na webu už dávno není.

Blokovat můžete jednotlivé IP adresy a dokonce i celé země. Z Číny si asi nikdo nic nebude chtít přečíst. Samozřejmě čím víc svůj web omezíte pro zobrazení, tak tím více se k němu čtenář potencionálně nemusí dostat. Je sice málo pravděpodobné, že si vás nějaký Čech bude chtít v Číně přečíst, ale stát se to může. Blokovat můžete i jednotlivé roboty podle user agenta. Ostatně o tom, jak se vypořádat s nimi, jsem už jeden článek napsal.

V nastavení máte pak rozsáhlé možnosti, v jakých případech nezvané návštěvníky blokovat. Se základním nastavením se blokování robotů chová velmi dobře. Jen bych trochy zvýšil délku automatického BANU.

Nicméně plugin je tak robustní, že sám ho nevyužiji a ještě se porozhlédnu po nějakém odlehčeném řešením. Navíc se mi nelíbí, že blokování je až na straně php. Tj. musí se načíst celý WordPress a až poté systém zjistí, že má návštěvníka zablokovat. Určitě tak budu do budoucna něco, co zablokuje roboti už na straně Apache přes soubor htaccess.

V rubrice: Tutoriály