Bezpečnost e-shopu — základní hardening
Většina útoků na e-shopy nevyužívá nic sofistikovaného. Stačí neaktualizovaný plugin, sdílené heslo nebo otevřený admin. Ukážeme základní hardening, který by měl mít každý e-shop.
Většina napadených e-shopů nepadne kvůli geniálnímu útočníkovi. Padne kvůli pluginu, který se dva roky neaktualizoval. Kvůli administrátorskému účtu bývalého brigádníka. Kvůli API klíči, který někdo poslal e-mailem a nikdy ho nezměnil. Útoky jsou z velké části automatizované: roboti procházejí internet a zkoušejí známé chyby na všem, co najdou. Velikost e-shopu je nezajímá.
Hardening je obrana proti přesně tomuhle. Není to drahý projekt, ale disciplína. V článku projdeme základní opatření, která doporučujeme každému e-shopu bez ohledu na platformu, a na konci najdete checklist k odškrtání.
Kde leží odpovědnost podle typu platformy
Než začnete, ujasněte si, co je vaše práce a co dělá dodavatel. Liší se to podle platformy.
| Oblast | Pronajímaná platforma (Shoptet, Upgates, Shopify) | Open source nebo vlastní řešení (WooCommerce, PrestaShop, Magento) |
|---|---|---|
| Server, operační systém, databáze | provozovatel platformy | vy nebo váš hosting |
| Aktualizace jádra e-shopu | provozovatel platformy | vy |
| Doplňky a pluginy | vy (výběr a počet) | vy (výběr, aktualizace, audit) |
| Účty, role, dvoufaktorové ověření | vy | vy |
| Skripty třetích stran v šabloně | vy | vy |
| API klíče a integrace | vy | vy |
| Zálohy | částečně provozovatel, export dat vy | vy |
U pronajímaných platforem je tedy seznam kratší, ale nikdy není prázdný. U open source řešení typu WooCommerce nebo Magento nesete odpovědnost prakticky za všechno.
Aktualizace: nejlevnější a nejúčinnější opatření
Známé zranitelnosti jsou pro útočníky nejsnazší cíl. Jakmile výrobce vydá záplatu, popis chyby je veřejný a automatické skenery ho brzy začnou zkoušet. Příklad z roku 2025: Adobe vydal mimořádnou záplatu mimo svůj běžný cyklus pro zranitelnost CVE-2025-54236 v Adobe Commerce a Magentu, známou jako SessionReaper, s hodnocením CVSS 9,1. Obchody, které záplatu odkládaly, zůstaly otevřené útokům.
Prakticky to znamená:
- Mějte seznam všeho, co na e-shopu běží: jádro, šablona, pluginy, knihovny, verze PHP.
- Sledujte bezpečnostní oznámení výrobců. U kritických chyb počítejte s nasazením v řádu hodin až dnů.
- Běžné aktualizace dělejte v pravidelném rytmu, vždy nejdřív na testovací kopii a se zálohou.
- Hlídejte konec podpory. Verze bez bezpečnostních záplat je dlouhodobě neudržitelná.
Méně je víc: pluginy, doplňky a skripty
Každý plugin je cizí kód s přístupem k vašim datům. Každý skript v šabloně (chat, měření, recenze, A/B testy) běží v prohlížeči zákazníka, včetně pokladny. Útoky typu e-skimming, kdy škodlivý skript v košíku odesílá platební údaje útočníkovi, stojí právě na tom.
OWASP, nezisková organizace pro bezpečnost webových aplikací, v aktuálním žebříčku rizik OWASP Top 10:2025 zařadila selhání softwarového dodavatelského řetězce na třetí místo. Totéž platí v malém pro každý e-shop.
- Jednou za čtvrtletí projděte pluginy a doplňky. Co nepoužíváte, odinstalujte, ne jen vypněte.
- Instalujte jen z oficiálních zdrojů a od aktivně udržovaných autorů.
- Veďte si seznam skriptů třetích stran a u každého vězte, proč tam je a kdo ho schválil.
- Na stránkách pokladny držte skriptů co nejméně.
Přístupy a administrace
Útočníci se stále častěji nepotřebují nikam „nabourat“. Prostě se přihlásí ukradeným nebo uhodnutým heslem. Cloudflare to ve své zprávě 2026 Threat Report popisuje jako posun od „breaking in“ k „logging in“.
- Každý člověk má vlastní účet. Žádné sdílené přihlášení „admin“.
- Dvoufaktorové ověření pro všechny, kdo mají přístup do administrace, hostingu, domény a platební brány. Podrobně to rozebíráme v článku Dvoufaktorové ověření a správa přístupů týmu.
- Minimální oprávnění. Copywriter nepotřebuje přístup k objednávkám, skladník k nastavení plateb.
- Po odchodu člověka nebo dodavatele účet zrušte týž den.
- U open source platforem omezte přístup do administrace, například na vybrané IP adresy nebo přes VPN, a změňte výchozí adresu administrace, pokud to platforma umožňuje.
- Ve WordPressu vypněte editor souborů v administraci konstantou
DISALLOW_FILE_EDIT.
Server, HTTPS a bezpečnostní hlavičky
Tahle část se týká hlavně vlastního hostingu. U pronajímaných platforem ji řeší provozovatel.
- HTTPS na celém webu, ne jen v košíku. Mozilla ve svém doporučení pro běžné servery (profil Intermediate) povoluje jen TLS 1.2 a TLS 1.3.
- Hlavička
Strict-Transport-Security(HSTS), aby prohlížeč na e-shop nechodil přes nešifrované HTTP. Content-Security-Policyomezí, odkud se smí načítat skripty. Je to jedna z mála obran proti vloženému škodlivému kódu.- Aktuální verze PHP a databáze s podporou výrobce.
- Oddělte produkční a testovací prostředí. Testovací kopie nesmí být veřejně dostupná a neměla by obsahovat skutečná zákaznická data.
- Webový server nesmí vypisovat obsah adresářů ani zobrazovat podrobné chybové hlášky.
API klíče a integrace
E-shop dnes komunikuje s ERP, dopravci, feedy a marketingovými nástroji. Každé napojení přes REST API znamená klíč, který otevírá data. Klíče patří do trezoru hesel nebo do proměnných prostředí, ne do e-mailu a sdílené tabulky. Každá integrace má mít vlastní klíč s co nejužšími oprávněními, aby šel v případě problému zneplatnit bez výpadku ostatních. Víc v článku Bezpečnost API a integrací v ecommerce.
Logy, zálohy a dohled
Hardening zmenšuje pravděpodobnost útoku. Logy a zálohy zmenšují jeho dopad.
- Logujte přihlášení do administrace, změny oprávnění a změny v nastavení plateb.
- Nastavte upozornění na neobvyklé události, například přihlášení z nové země nebo náhlou změnu souborů šablony.
- Zálohujte pravidelně a mimo produkční server. Obnovu si vyzkoušejte, jinak nevíte, jestli funguje. Konkrétní rytmus popisujeme v článku Zálohování e-shopu: jak často a kam.
Checklist základního hardeningu
Projděte si ho s tím, kdo má e-shop technicky na starosti. Co nemůžete odškrtnout, je váš úkol na příští měsíc.
- Máme aktuální seznam jádra, pluginů, šablony a jejich verzí.
- Bezpečnostní záplaty nasazujeme do několika dnů, u kritických do hodin.
- Nepoužívané pluginy a doplňky jsou odinstalované.
- Každý člověk a dodavatel má vlastní účet s minimálními oprávněními.
- Dvoufaktorové ověření je zapnuté všude, kde to jde.
- Víme, jaké skripty třetích stran běží na pokladně, a kdo je schválil.
- HTTPS je všude, TLS 1.0 a 1.1 jsou vypnuté, nastavené je HSTS.
- API klíče jsou v trezoru, každá integrace má vlastní.
- Testovací prostředí není veřejné a neobsahuje ostrá data.
- Zálohy jsou mimo server a obnovu jsme letos zkoušeli.
- Přihlášení do administrace se loguje a na podezřelé události chodí upozornění.
Jak na to prakticky
Začněte inventurou. Bez seznamu toho, co na e-shopu běží, nejde nic hlídat. Pak řešte přístupy a aktualizace, protože tam je největší rozdíl za nejmenší práci. Hlavičky, logování a dohled přijdou na řadu potom.
Pokud nevíte, kde stojíte, uděláme vám audit a dostanete seznam nálezů seřazený podle rizika. Dlouhodobou péči o aktualizace, přístupy a dohled zajišťujeme v programu Ecommerce Care. Na straně cloudu a bezpečnosti nám pomáhá náš AI kolega Kael. Kontroly, které se dají automatizovat, běží pravidelně a nálezy pak posoudí člověk.
Potřebujete s tím pomoct?