Pouze na jaře: Spusťte web za 169 Kč s AI WebEditorem ZDARMA k doméně. 

Co je SameSite cookie

SameSite cookie je bezpečnostní atribut HTTP cookie, který určuje, zda má být cookie odesílána i při požadavcích pocházejících z jiné domény.

Slouží především jako ochrana proti útokům typu CSRF.

Pomocí atributu SameSite může server určit, za jakých podmínek prohlížeč připojí cookie k požadavku.

Jak SameSite funguje

Když server nastavuje cookie, může k ní přidat parametr SameSite.

Ten říká prohlížeči, zda má cookie odesílat pouze při tzv. „same-site“ požadavcích (tedy z té samé domény), nebo i při přístupu z jiného webu.

Prohlížeč pak při každém požadavku vyhodnocuje, zda cookie připojit, nebo ji z bezpečnostních důvodů zablokovat.

Tím, že se cookie při cross-site požadavku neodešle, může aplikace rozlišit, zda požadavek vznikl přímo na jejím webu (např. odesláním formuláře), nebo byl vyvolán z externí stránky. SameSite tak nepřímo umožňuje odhalit pokusy o CSRF útok.

Režimy SameSite

Atribut SameSite má tři základní režimy.

Režim Chování
Strict Cookie se odesílá pouze při přímé návštěvě stejné domény
Lax Cookie se odesílá při běžné navigaci (např. kliknutí na odkaz), ale ne při automatických požadavcích
None Cookie se odesílá i při cross-site požadavcích (musí být použito spolu s atributem Secure)

Režim Strict poskytuje nejvyšší úroveň ochrany, ale může omezit některé funkce webu závislé na cross-site přesměrování, například přihlášení přes externí služby (SSO), návrat z platební brány nebo práci s aplikací vloženou v iframe.

SameSite a bezpečnost

Použití atributu SameSite by mělo být kombinováno s dalšími bezpečnostními opatřeními:

  • použitím HTTPS
  • atributem Secure
  • atributem HttpOnly
  • implementací CSRF tokenů

SameSite není náhradou bezpečného návrhu aplikace, ale důležitou doplňkovou vrstvou ochrany.

Rizika špatné konfigurace

Nesprávné nastavení může způsobit problémy například:

  • s přihlašováním přes externí identity providery
  • při použití třetích stran (např. platební brány)
  • u embedded aplikací

Proto je důležité nastavení testovat v kontextu konkrétní aplikace.

Poslední aktualizace: