Nová výkonná bezpečnostní funkce Joomla 4 umožňují spravovat a definovat HTTP hlavičky přímo z administrace stránek a ještě více usnadňuje zabezpečení vašeho webu.
HTTP hlavičky umožňují webovým stránkám aktivovat bezpečnostní funkce ve webovém prohlížeči a tím zablokovat nebo ztížit různé typy útoků. Zkontrolujte si na https://securityheaders.com jak si vede Váš web.
Existuje celá řada HTTP hlaviček, které můžete implementovat při zabezpečení svých webových stránek. Mezi nimi je i jedna specifická s názvem Content Security Policy (CSP), která umožní definovat další volitelnou bezpečnostní vrstvu s použitím moderních typů ochran zabudovaných v prohlížečích, které pomáhají chránit váš web a uživatele před některými běžnými hrozbami.
Mezi ně patří útoky typu XSS (Cross Site Scripting) a útoky typu data injection, které mohou způsobit cokoli od poškození webu až po krádež dat a šíření spamu nebo malwaru. Je jasné, že se tomu chce každý majitel webu vyhnout.
K čemu je CSP?
Když prohlížeč načte webovou stránku, načte s ní i mnoho dalších zdrojů. Načítají se soubory CSS stylů a písma a také několik souborů javascriptu. Nějaké pro eshop, další pro Google Analytics, tlačítka pro sdílení na sociálních sítích atd. Prohlížeč všechny tyto soubory načte, protože mu to nařizuje zdrojový kód stránky. Nemůže vědět, zda se některý z těchto souborů má nebo nemá načíst. Útočník může například umístit speciálně vytvořený komentář, který by načetl škodlivý javascript z domény třetí strany, a ten by váš prohlížeč také načetl, protože byl připojen ke stránce. Váš prohlížeč nemá důvod nevěřit obsahu z jiného webu a nemá možnost poznat, že je obsah škodlivý. Zde přichází na řadu CSP.
Hlavička CSP umožňuje definovat schválené zdroje obsahu na webu, které může prohlížeč načíst. Určením pouze těch zdrojů, ze kterých si přejete, aby prohlížeč načítal obsah, můžete návštěvníky ochránit před celou řadou problémů.
Zatímco skripty jsou nejznámějšími bezpečnostními riziky, CSP poskytuje celou sadu zásad, které umožňují poměrně podrobnou kontrolu nad zdroji, které může stránka načíst.
Obecně lze hlavičky HTTP implementovat třemi způsoby:
- Konfigurace na úrovni serveru pomocí souboru httpd.conf
- Prostřednictvím souboru .htaccess
- Meta tagy na konkrétní stránce
Všechny tyto způsoby jsou účinné, ale obvykle vyžadují určité technické znalosti, jak je implementovat na hostingu i v CMS Joomla. Mnoho webů je proto nemá zavedené a nechrání své stránky.
V rámci Joomla 4 byl vytvořen systémový plugin, který pomůže každému správci stránek s nastavením HTTP hlaviček a umožní pochopit a nastavit tyto hlavičky, a dokonce použít některé základní typy ochrany webu ve výchozím nastavení. Pomocí HTTP hlaviček můžete jako správci stránek nakonfigurovat např. zákaz načítání svých webových stránek jako iframe nebo dát prohlížečům pokyn, aby nepropouštěli odkaz na nezabezpečené stránky, včetně pokročilejších funkcí, jako je Content Security Policy tedy CSP. Hlavní ochranou, kterou CSP poskytuje, je zákaz jakéhokoli inline JavaScriptu a CSS, což eliminuje mnoho XSS útoků proti uživatelům a návštěvníkům. Pokud je však tato funkce povolena, vztahuje se i na použití v instalovaných rozšířeních na vašem webu, což může být problém. Stále je totiž vyžadováno mít inline JavaScript a CSS. Z tohoto důvodu byla v pluginu implementována podpora "nonce" a "hash" a když ji použijete, jádro Joomla 4 se postará o to, aby inline prvky byly na bílé listině, ale stále budete blokovat všechny ty škodlivé, abyste ochránili svůj web.
Vyzkoušejte jak funguje nový systémový plugin v Joomla 4. Pokud ale CSP teprve začínáte, můžete požádat prohlížeč, aby sledoval zásady, hlásil porušení, ale nevynucoval omezení. Namísto odeslání hlavičky Content-Security-Policy odešlete hlavičku Content-Security-Policy-Report-Only. Při této volbě jsou zprávy odesílány pouze do konzoly vývojářských nástrojů v prohlížeči. Tato volba je dostupná v nastavení pluginu. Ve výchozím nastavení jsou zásady zabezpečení obsahu zakázány a je třeba je v pluginu "Systém - HTTP hlavičky" povolit a nakonfigurovat.