Konfigurace HTTP
Přehled konfiguračních voleb pro Nette HTTP.
HTTP hlavičky
Framework z bezpečnostních důvodů odesílá hlavičku X-Frame-Options: SAMEORIGIN
, která říká, že
stránku lze zobrazit uvnitř jiné stránky (v elementu <iframe>
) pouze pokud se nachází na stejné
doméně. To může být v některých situacích nežádoucí (například pokud vyvíjíte aplikaci pro Facebook), chování
lze proto změnit nastavením frames: http://allowed-host.com
nebo frames: true
.
Content Security Policy
Snadno lze sestavovat hlavičky Content-Security-Policy
(dále CSP), jejich popis najdete v popisu CSP. CSP direktivy (jako např. script-src
) mohou být zapsány
buď jako řetězce dle specifikace, nebo jako pole hodnot kvůli lepší čitelnosti. Pak není potřeba kolem klíčových slov,
jako třeba 'self'
, psát uvozovky. Nette také automaticky vygeneruje hodnotu nonce
, takže
v hlavičce bude třeba 'nonce-y4PopTLM=='
.
V šablonách používejte <script n:nonce>...</script>
a hodnota nonce se doplní automaticky.
Dělat bezpečné weby v Nette je opravdu snadné.
Podobně lze sestavit i hlavičky Content-Security-Policy-Report-Only
(které lze používat souběžně s CSP)
a Feature Policy:
HTTP cookie
Lze změnit vychozí hodnoty parametru $secure
u metody Nette\Http\Response::setCookie().
Hodnota auto
znamená, že pokud web běží na HTTPS, budou se cookies odesílat s příznakem
Secure
a tedy budou dostupné pouze přes HTTPS.
HTTP proxy
Pokud web běží za HTTP proxy, zadejte její IP adresu, aby správně fungovala detekce IP adresy klienta Nette\Http\Response::getRemoteAddress() a spojení přes HTTPS isSecured().
Session
Základní nastavení sessions:
Dále lze nastavovat všechny PHP session direktivy (ve formátu camelCase):
Session cookie
Session cookie se odesílá se stejnými parametry jako jiné cookie, ale tyto můžete pro ni změnit:
Atribut cookieDomain
určuje, které domény mohou cookie přijímat. Není-li uveden, cookie přijímá stejná
(sub)doména, jako ji nastavila, ale nikoliv její subdomény. Pokud je cookieDomain
zadaný, jsou zahrnuty
i subdomény. Proto je uvedení cookieDomain
méně omezující než vynechání.
Například při cookieDomain: nette.org
jsou cookies dostupné i na všech subdoménách jako
doc.nette.org
. Téhož lze dosáhnout také pomocí speciální hodnoty domain
, tedy
cookieDomain: domain
.
Atribut cookieSamesite
ovlivňuje, zda bude cookie odeslaná při přístupu z jiné
domény, což poskytuje určitou ochranu před útoky Cross-Site Request Forgery (CSRF).