Formulář se nezobrazuje (CSP nastavení)
Občas se může stát, že při vkládání rezervačního formuláře na vlastní web se formulář nezobrazí správně – nebo vůbec. Důvodem může být bezpečnostní nastavení vašeho webu, konkrétně tzv. Content Security Policy (CSP).
Nebojte se, zní to složitě, ale ve skutečnosti stačí upravit pár řádků v kódu webu nebo předat správné informace správci webu.
Co je Content Security Policy (CSP) a proč brání načtení formuláře?
CSP je bezpečnostní pravidlo, které říká, odkud a jaký může váš web načítat obsah – jako jsou obrázky, skritpy nebo třeba formuláře. Chrání tak web před nebezpečnými útoky, jako je XSS (Cross-site scripting). Problém ale nastane, když toto CSP není správně nastaveno a neumožní načítat obsah z naší domény reservanto.cz. Výsledek? Formulář se nenačte, nebo se zobrazí neúplně.
Jak zjistím, jestli mám na svém webu CSP aktivní?
Zda-li vaše webová stránka používá CSP, postupujte podle těchto kroků:
- V prohlížeči otevřete svůj web.
- Stiskněte klávesu F12 a přepněte se do záložky „Síť“ (Network).
- Klikněte na hlavní načtenou stránku a v záložce „Hlavičky“ (Headers) hledejte položku s názvem content-security-policy.
Pokud tam tato položka není, CSP nepoužíváte – a formulář by měl fungovat bez problému.
Pokud tam je, je potřeba upravit pravidla tak, aby umožnila načtení obsahu z domény reservanto.cz.
Co říct správci webu nebo vývojáři?
Pokud si s tím sami nevíte rady, nepropadejte panice. Svému správci webu pošlete následující informaci:
Pro správné zobrazení rezervačního formuláře z Reservanto je potřeba upravit bezpečnostní hlavičky CSP tak, aby povolily doménu *.reservanto.cz (hvězdička znamená, že může jít o jakoukoli subdoménu v rámci Reservanto, a to jak pro stránku s formulářem, tak i pro další nezbytné funkce – jako třeba zákaznická správa rezervací).
Jak správně nastavit CSP pro načtení formuláře z Reservanto?
Základní nastavení, které povolí formulář
Pokud máte ve vašem CSP nastaveno například default-src 'self';, je třeba jej rozšířit takto: default-src 'self' *.reservanto.cz;
Toto nastavení zajistí, že veškerý obsah z domén *.reservanto.cz bude povolen a rezervační formulář bude plně funkční.
Doplňující pravidla pro přísnější bezpečnostní politiku
Pokud web používá přísnější pravidla (např. zvlášť pro styly, skripty, obrázky), je potřeba upravit a povolit *.reservanto.cz i tam:
style-src 'self' *.reservanto.cz data:;
script-src 'self' *.reservanto.cz;
img-src 'self' *.reservanto.cz;
frame-src 'self' *.reservanto.cz;
child-src 'self' *.reservanto.cz;
Přidáním *.reservanto.cz do každého z těchto direktiv zajistíte, že všechny komponenty rezervačního formuláře budou správně fungovat.
V případě, že nemáte vyplněnou specifickou část CSP, bude použita hodnota default-src.
?Poznámka: Část data: slouží ke správnému načítání ikon, které jsou přímo definované v CSS stylu.
Takto pak vypadají příklady správného nastavení CSP
default-src 'self' *.reservanto.cz;
default-src 'self' *.reservanto.cz data:; style-src 'self' *.reservanto.cz data:;
default-src 'self' *.reservanto.cz data:; style-src 'self' *.reservanto.cz data:; script-src 'self' *.reservanto.cz;
Co se stane, když CSP není nastaveno správně?
Pokud doména *.reservanto.cz není ve vašem CSP povolena, může dojít k následujícím problémům:
- Formulář se nenačte vůbec, nebo se zobrazí chybové hlášení
- Zobrazí se jen část obsahu – například bez tlačítek nebo stylů.
Vaši zákazníci tak nebudou schopni provést rezervaci, což může mít vliv na vaši návštěvnost nebo prodeje.