Bezpečnost webu v Joomla! 6 nekončí instalací SSL certifikátu a pravidelnými aktualizacemi. Důležitou vrstvu ochrany tvoří také bezpečnostní HTTP hlavičky, které prohlížeči určují, odkud smí načítat skripty, zda lze web vložit do cizího rámce, jak má pracovat s HTTPS nebo jaké funkce zařízení může stránka používat. V tomto návodu si ukážeme, jak nastavit plugin System – HTTP Headers v Joomla! 6 a jak výsledek ověřit pomocí služby SecurityHeaders.com.

Bez úprav .htaccess Základní bezpečnostní hlavičky nastavíte přímo v administraci Joomla.
Vyšší zabezpečení Omezíte clickjacking, MIME sniffing a načítání nedůvěryhodného obsahu.
Kontrola zdarma Výsledek ověříte online pomocí SecurityHeaders.com.

Co jsou bezpečnostní HTTP hlavičky?

Když návštěvník otevře webovou stránku, server neposílá pouze HTML, obrázky a další viditelný obsah. Součástí odpovědi jsou také HTTP hlavičky. Ty předávají prohlížeči technické instrukce – například jaký typ obsahu server posílá, zda se smí stránka zobrazit v cizím iframe nebo jestli má prohlížeč vynucovat zabezpečené spojení HTTPS.

Bezpečnostní hlavičky představují další ochrannou vrstvu. Neopraví napadené rozšíření ani nenahradí aktualizace Joomla, silná hesla a správně nastavený hosting. Mohou ale výrazně omezit dopad některých útoků a zabránit tomu, aby prohlížeč provedl nebezpečný nebo neočekávaný obsah.

K čemu jsou HTTP Headers užitečné?

Správně nastavené bezpečnostní hlavičky mohou zabránit celé řadě nežádoucích situací. Nejčastěji se používají k omezení načítání nebezpečných skriptů, ochraně proti vložení webu do podvodného rámce a k vynucení komunikace přes HTTPS.

  • Ochrana proti clickjackingu: stránku nelze snadno překrýt nebo vložit do cizího iframe.
  • Omezení MIME sniffingu: prohlížeč respektuje deklarovaný typ souboru.
  • Omezení XSS: Content Security Policy může blokovat neautorizované skripty.
  • Vynucení HTTPS: HSTS říká prohlížeči, aby web otevíral pouze zabezpečeně.
  • Ochrana soukromí: Referrer-Policy omezuje předávání adres navštívených stránek.
  • Omezení funkcí prohlížeče: Permissions-Policy může zakázat kameru, mikrofon nebo geolokaci.

Z pohledu SEO nejde o přímý nástroj pro zvýšení pozic ve vyhledávání. Bezpečný web, plně funkční HTTPS a absence bezpečnostních incidentů však mají zásadní význam pro důvěryhodnost webu, návštěvníky i bezproblémový provoz.

1. Jak zapnout plugin HTTP Headers v Joomla! 6

Joomla obsahuje systém pro správu HTTP hlaviček přímo v jádře. V administraci jej najdete jako plugin System – HTTP Headers. Přesný český překlad názvu se může mírně lišit podle použitého jazykového balíčku.

Otevřete správu pluginů

Přihlaste se do administrace Joomla a přejděte do Systém → Správa → Pluginy.

Vyhledejte HTTP Headers

Do vyhledávání zadejte HTTP Headers. Otevřete systémový plugin, nikoli rozšíření třetí strany s podobným názvem.

Plugin publikujte

Nastavte stav na Publikováno. Před aktivací přísnějších pravidel si vytvořte zálohu webu a poznamenejte původní hodnoty.

Začněte základními hlavičkami

Nejprve nastavte jednodušší hlavičky, které obvykle nezpůsobují problémy. Content Security Policy zapínejte až po samostatném otestování.

2. Doporučené základní nastavení HTTP Headers

Konkrétní nabídka pluginu se může lišit podle verze Joomla a použitého serveru. Následující hodnoty představují rozumný výchozí bod pro běžný firemní web. Před nasazením je vždy ověřte na testovací kopii.

X-Frame-Options

Hlavička chrání před clickjackingem. Pro běžný web použijte SAMEORIGIN, aby bylo vložení stránky povoleno pouze z vlastní domény.

X-Frame-Options: SAMEORIGIN

Pokud musí být stránka vložena do iframe na jiné doméně, pravidlo nejprve konzultujte a řešte raději přes direktivu frame-ancestors v CSP.

X-Content-Type-Options

Nastavte hodnotu nosniff. Prohlížeč pak nebude odhadovat jiný typ obsahu, než jaký server deklaruje.

X-Content-Type-Options: nosniff

Referrer-Policy

Pro většinu webů je vhodnou vyváženou volbou strict-origin-when-cross-origin. Při přechodu na jinou doménu se předá pouze původ webu, nikoli celá navštívená URL.

Referrer-Policy: strict-origin-when-cross-origin

Cross-Origin-Opener-Policy

Hodnota same-origin oddělí kontext stránky od dokumentů z jiných domén. Může však ovlivnit přihlašovací okna nebo služby, které komunikují přes nové okno.

Cross-Origin-Opener-Policy: same-origin

Permissions-Policy

Touto hlavičkou lze omezit přístup webu ke kameře, mikrofonu, geolokaci a dalším funkcím. Pro běžný prezentační web může být výchozí nastavení například:

Permissions-Policy: camera=(), microphone=(), geolocation=()

Pokud web některou funkci skutečně používá, například lokalizaci pobočky, musíte příslušné pravidlo upravit.

3. Strict-Transport-Security: jak správně nastavit HSTS

Hlavička Strict-Transport-Security neboli HSTS sdělí prohlížeči, že má web po určitou dobu otevírat pouze přes HTTPS. Pomáhá tak zabránit návratu na nezabezpečenou variantu HTTP.

Strict-Transport-Security: max-age=31536000; includeSubDomains

Hodnota max-age=31536000 odpovídá jednomu roku. Parametr includeSubDomains rozšíří pravidlo také na všechny subdomény. Volbu preload používejte pouze tehdy, když přesně víte, co znamená a celý web včetně všech subdomén je dlouhodobě dostupný výhradně přes HTTPS.

Doporučený postup při zavádění HSTS

  1. Ověřte, že web funguje pouze přes HTTPS a HTTP správně přesměrovává.
  2. Začněte krátkou dobou, například několika minutami nebo hodinami.
  3. Otestujte administraci, subdomény, API, e-mailové odkazy a externí služby.
  4. Teprve poté zvyšte max-age na několik měsíců nebo jeden rok.
  5. Parametry includeSubDomains a preload přidávejte až po důkladném ověření.

4. Content Security Policy v Joomla! 6

Content Security Policy (CSP) patří mezi nejúčinnější bezpečnostní hlavičky. Prohlížeči říká, ze kterých zdrojů smí načítat JavaScript, CSS, obrázky, fonty, iframe a další obsah. Pokud se útočníkovi podaří vložit do stránky škodlivý skript, správně nastavená CSP může zabránit jeho spuštění.

CSP je zároveň nejsložitější část nastavení. Moderní Joomla web může používat skripty šablony, inline styly, Google Fonts, analytiku, mapy, videa, platební brány a externí CDN. Příliš přísná politika může tyto prvky zablokovat.

Nedoporučený postup

Zapnout ostrou Content-Security-Policy bez testování a bez kontroly chyb v konzoli prohlížeče.

Doporučený postup

Nejprve použít režim Report-Only, sledovat hlášení, doplnit povolené zdroje a až poté politiku vynucovat.

Začněte režimem Report-Only

V režimu Content-Security-Policy-Report-Only prohlížeč porušení pravidel zaznamená, ale obsah ještě nezablokuje. Díky tomu zjistíte, které skripty a služby web skutečně používá.

Joomla obsahuje také komponentu pro přehled hlášení CSP. Po zapnutí reportování ji najdete v administraci v části věnované Content Security Policy.

Příklad jednoduché výchozí politiky

default-src 'self';
img-src 'self' data: https:;
style-src 'self' 'unsafe-inline' https:;
script-src 'self' 'unsafe-inline' https:;
font-src 'self' data: https:;
frame-src 'self' https:;

Tento příklad je pouze orientační. Hodnoty 'unsafe-inline' snižují přísnost CSP, ale některé šablony a rozšíření je mohou na začátku vyžadovat. Bezpečnější konfigurace pracuje s nonce nebo hashi, její nasazení ale vyžaduje přesnější analýzu konkrétního webu.

Nejčastější zdroje, které CSP blokuje

  • Google Analytics a Google Tag Manager,
  • Google Fonts,
  • YouTube a Vimeo iframe,
  • Google Maps,
  • reCAPTCHA a další CAPTCHA služby,
  • platební brány,
  • Facebook Pixel a další marketingové skripty,
  • externí CDN a knihovny JavaScriptu.

Galerie nastavení HTTP headers



5. Jak ověřit HTTP Headers pomocí SecurityHeaders.com

Po uložení nastavení je potřeba zkontrolovat, zda web hlavičky skutečně odesílá. Bezplatná služba SecurityHeaders.com načte veřejnou stránku, zobrazí přijaté bezpečnostní hlavičky a přidělí výsledné hodnocení.

Otevřete SecurityHeaders.com

Do vyhledávacího pole zadejte celou doménu nebo adresu konkrétní stránky.

Povolte následování přesměrování

Pokud web přesměrovává z HTTP na HTTPS nebo z adresy bez www na www, použijte volbu pro následování přesměrování.

Zkontrolujte hodnocení a chybějící hlavičky

Služba používá stupnici od A+ po F a vypíše hlavičky, které našla, případně upozorní na chybějící nebo nevhodné hodnoty.

Prohlédněte Raw Headers

V surových hlavičkách ověřte, zda se stejná hlavička neposílá dvakrát s různými hodnotami – například jednou z Joomla a podruhé z hostingu.

Hodnocení A nebo A+ je užitečný orientační cíl, ale samo o sobě nezaručuje, že je web dokonale zabezpečený. Automatický test neprověřuje stav Joomla, zranitelnosti rozšíření, hesla, oprávnění souborů ani kvalitu záloh.

6. Nejčastější problémy po zapnutí HTTP Headers

Přestaly fungovat externí skripty

Nejčastější příčinou je příliš přísná CSP. Otevřete vývojářskou konzoli prohlížeče a vyhledejte hlášení obsahující text Content Security Policy.

Nezobrazuje se Google mapa nebo video

Zkontrolujte direktivu frame-src. Doména služby musí být mezi povolenými zdroji iframe.

Zmizely fonty nebo styly

Prověřte direktivy font-src a style-src. Externí fonty bývají načítány z více domén.

Nefunguje přihlášení přes nové okno

Problém může způsobovat Cross-Origin-Opener-Policy. Dočasně ji vypněte, ověřte souvislost a následně nastavte kompatibilnější hodnotu.

Hlavička se odesílá dvakrát

Stejná hlavička může být nastavena v Joomla, v souboru .htaccess, v konfiguraci serveru, CDN nebo bezpečnostním pluginu. Ponechte jedno místo, které je zdrojem pravdy.

Po zapnutí HSTS nelze otevřít subdoménu

Pokud jste použili includeSubDomains, každá subdoména potřebuje platné HTTPS. U HSTS proto vždy začínejte krátkou hodnotou max-age.

7. Kontrolní seznam po nastavení pluginu

  • Plugin System – HTTP Headers je publikovaný.
  • Web a všechny důležité subdomény používají funkční HTTPS.
  • X-Content-Type-Options používá hodnotu nosniff.
  • X-Frame-Options je nastaveno podle způsobu použití iframe.
  • Referrer-Policy odpovídá požadavkům webu a analytiky.
  • Permissions-Policy neblokuje funkce, které web skutečně potřebuje.
  • HSTS bylo nejprve otestováno s krátkým max-age.
  • CSP byla nejprve spuštěna v režimu Report-Only.
  • Byly otestovány formuláře, mapy, videa, fonty, analytika a platební brána.
  • Ve vývojářské konzoli nejsou chyby související s CSP.
  • Stejné hlavičky se neposílají z Joomla i serveru současně.
  • SecurityHeaders.com zobrazuje očekávané hodnoty.
  • Byla otestována veřejná část i administrace Joomla.
  • Před změnou existuje funkční záloha webu.

Časté dotazy k HTTP Headers v Joomla! 6

Je plugin HTTP Headers součástí Joomla! 6?

Ano. Joomla! 6 obsahuje systémový plugin pro správu bezpečnostních HTTP hlaviček. Systém správy HTTP hlaviček byl v Joomla dostupný už v předchozích hlavních řadách, nejde tedy výhradně o novinku Joomla! 6.

Musím upravovat soubor .htaccess?

Pro hlavičky podporované pluginem obvykle ne. Některá specifická serverová pravidla ale mohou vyžadovat úpravu Apache, Nginx, CDN nebo hostingu.

Mohou HTTP Headers rozbít web?

Ano. Největší riziko představuje příliš přísná Content Security Policy, HSTS s dlouhým max-age nebo nevhodně nastavené cross-origin hlavičky. Změny zavádějte postupně a vždy je testujte.

Má nastavení HTTP Headers vliv na SEO?

Bezpečnostní hlavičky nejsou běžným přímým hodnoticím faktorem. Přispívají však k bezpečnosti, důvěryhodnosti a stabilnímu provozu webu, což je důležité pro uživatele i dlouhodobou viditelnost ve vyhledávání.

Musím používat Content Security Policy?

Není nutné ji aktivovat bez přípravy. CSP je velmi užitečná, ale musí odpovídat konkrétním skriptům a službám webu. Začněte režimem Report-Only.

Jak poznám, co CSP zablokovala?

Otevřete vývojářské nástroje prohlížeče a kartu Console. Porušení CSP bývají popsána včetně blokované adresy a direktivy, kterou je potřeba upravit.

Proč SecurityHeaders.com stále hlásí chybějící hlavičku?

Zkontrolujte, zda jste nastavení uložili, vymazali cache a testujete správnou HTTPS adresu. Hlavičku může odstraňovat nebo přepisovat také proxy server, CDN či hosting.

Je hodnocení A+ zárukou bezpečného webu?

Ne. Hodnocení se týká pouze kontrolovaných HTTP hlaviček. Neověřuje aktualizace Joomla, stav rozšíření, malware, hesla, oprávnění souborů ani zálohy.

Mohu nastavit hlavičky současně v Joomla i .htaccess?

Technicky ano, ale není to vhodné. Duplicitní nebo rozdílné hodnoty mohou vést k nejasnému chování. Vyberte jedno hlavní místo správy.

Jaké nastavení je vhodné pro e-shop v Joomla?

E-shop vyžaduje individuální konfiguraci, protože používá platební brány, analytiku a další externí služby. CSP i cross-origin pravidla vždy otestujte v celém objednávkovém procesu.

Shrnutí

Plugin System – HTTP Headers v Joomla! 6 umožňuje spravovat důležité bezpečnostní HTTP hlavičky přímo z administrace. Pro běžný web je vhodné začít hlavičkami X-Content-Type-Options, X-Frame-Options a Referrer-Policy, následně opatrně přidat Permissions-Policy a HSTS.

Content Security Policy zavádějte postupně a nejprve v režimu Report-Only. Po každé změně otestujte veřejnou část, administraci, formuláře, analytiku, mapy, videa i případnou platební bránu. Výsledek zkontrolujte pomocí SecurityHeaders.com, ale pamatujte, že dobrá známka nenahrazuje aktualizace, zálohy a další bezpečnostní opatření.

Použité zdroje