Jednou z technických bolístek WordPressu je výchozí způsob hashovaní hesel uživatelů. Z historického hlediska a údajně pro zachování kompatibility starých platforem je výchozí hashovací funkcí stařičký MD5, což není moc cool. A to i přesto, že je přidávána sůl.
Proč je MD5 problém?
Sůl nade vše zde bohužel neplatí. MD5 je prostě už moc rychlý na současném hardwaru. V dnešní době je tak každé minimálně 8 místné heslo zahashované pomocí MD5 nebezpečné, protože jsou na internetu k dispozici rainbow tabulky se všemi právě až 8 místnými hesly. V průběhu času se navíc počet nebezpečných míst může a bude dále zvyšovat. A každý, kdo se v této problematice alespoň trochu vyzná, si může takové ukořistěné heslo snadno dešifrovat.
Jak z toho ven?
Nejjednodušší řešení je nainstalovat plugin wp-password-bcrypt od skupiny Roots (článek v angličtině). Opravdu, tak jednoduché to je. Nicméně když se podíváte na popis pluginu a do jeho kódu, zjistíte, že z programátorského hlediska se jedná prakticky jen o přepsání 3 WordPress funkcí a aplikaci bezpečného Bcryptu:
Celý kód celkem jednoduše můžete integrovat do vlastní šablony a napsat si ho po svém. Výhodou tohoto pluginu je dále i to, že ho možné je aplikovat na již zaběhnuté WordPress weby, bez nutnosti upravovat hesla stávajících uživatelů.
Po aplikaci pluginu, vždy když se nějaký uživatel přihlásí, dojde ke kontrole, a pokud je heslo zahashované po staru, aplikuje se nový způsob, který už je pak platný napořád. A dokonce se nemusíte bát plugin kdykoliv později deaktivovat, na další přihlašování to nemá vliv.
Plugin totiž prakticky při každém prvním přihlášení přehashuje staré heslo novým způsobem a pak používá standardní metody, jen v lepší konfiguraci. Technické požadavky pluginu jsou pouze PHP 5.5+ a WP 4.4+, a je jak součástí oficiální databáze pluginů, tak je možné ho instalovat i přes composer.
Zbytečná hrozba?
„Tak určitě“. Je to na vás. Nicméně tento problém nijak nevylučuje bezpečnostní pluginy. Je to jeden/další z mnoha nutných kroků pro bezpečný WordPress. Ale až jednou přijdete o databázi, budete za něj secsakramentsky rádi, aneb prevence nadevše… ;-)