INTEGRITY Dokumentace

Interakce cookie SameSite s Cloudflarem

Google Chrome vynucuje chování cookies dle SameSite k ochraně proti marketingovým cookies sledujícím uživatele a proti Cross-site Request Forgery (CSRF), které útočníkům umožňuje krást nebo manipulovat vaše cookies.

The SameSite atribut cookie má tři různé režimy:

SameSite nastavení pro Cookies Cloudflare zahrnují:

Cookie Cloudflare Nastavení SameSite HTTPS Only Partitioned (CHIPS)
__cf_bm SameSite=None; Secure Ano Ne
cf_clearance SameSite=None; Secure Ano Ano
__cflb SameSite=Lax Ne Ne

Atribut SameSite v session affinity cookies

V současnosti je ke konfiguraci SameSite atribut na session affinity cookies musíte použít Cloudflare API (například Create Load Balancer operace).

Chcete-li nakonfigurovat hodnotu SameSite atribut cookie, zahrňte samesite a secure JSON atributy ve vašem HTTP požadavku, uvnitř session_affinity_attributes objekt.

Dostupné hodnoty těchto dvou atributů jsou následující:

samesite atributem:

secure atributem:

The Auto hodnotu pro samesite atribut bude mít následující chování:

The Auto hodnotu pro secure atribut bude mít následující chování:

Pokud nastavíte samesite na None ve svém API požadavku, nemůžete nastavit secure na Never.

Pokud vyžadujete konkrétní SameSite konfiguraci v cookies session affinity, Cloudflare doporučuje zadat hodnoty pro samesite a secure odlišné od Auto, namísto spoléhání na výchozí chování. Tímto způsobem hodnota SameSite atribut cookie se nezmění v důsledku změn konfigurace (konkrétně Always Use HTTPS).


Známé problémy se SameSite a cf_clearance cookies

Když návštěvník vyřeší challenge zobrazené kvůli vlastní pravidlo nebo IP access pravidlo, cf_clearance cookie se nastaví v prohlížeči návštěvníka. cf_clearance cookie má výchozí životnost 30 minut, kterou můžete nakonfigurovat přes Challenge Passage.

Cloudflare používá SameSite=None v cf_clearance cookie, aby požadavky návštěvníků z různých hostname nenarážely na pozdější challenge nebo chyby. Když SameSite=None se používá, musí být nastaven společně s Secure flag.

Pomocí Secure flag vyžaduje odesílání cookie přes HTTPS spojení. Pokud na jakékoli části webu používáte HTTP, cf_clearance cookie má výchozí hodnotu SameSite=Lax, což může způsobit, že váš web nebude fungovat správně.

Problém vyřešíte převedením provozu webu na HTTPS. Cloudflare k tomu nabízí dvě funkce:


Partitioned cookies (CHIPS) a cf_clearance

Cloudflare nastavuje Partitioned atribut na cf_clearance cookie (a na interní cf_chl_* cookies používané platformou Challenge Platform), aby vyhověly Cookies Having Independent Partitioned State (CHIPS) ↗.

S CHIPS je cookie nastavená v third-party kontextu (například uvnitř iframe nebo z cross-site subresource) uložena v oddílu vázaném na top-level web, místo aby byla sdílena napříč všemi weby, které danou třetí stranu vkládají. V prohlížečích na bázi Chromia, které blokují third-party cookies, to zachovává stav challenge pro cross-site vložení, která by jinak nefungovala. V prohlížečích, které CHIPS neimplementují, Partitioned atribut je ignorován a chování se nemění.

The Partitioned atribut se nepoužije na __cf_bm.

Dopad na vložené challenge

Protože cf_clearance je partitionovaná, clearance získaná v jednom top-level kontextu se nepoužije v jiném top-level kontextu. Návštěvník, který projde challenge při přímém prohlížení webu, si tuto clearance automaticky nepřenese na jiný web, který jej vkládá (embed), a naopak. Toto je zamýšlené chování v rámci CHIPS.

Partitioned vyžaduje SameSite=None; Secure

The Partitioned atribut se uplatní pouze u cookies, které jsou zároveň nastaveny s SameSite=None; Secure. Pokud váš web neobsluhuje veškerý provoz přes HTTPS, cf_clearance cookie přechází na SameSite=Lax (viz Známé problémy se SameSite a cf_clearance cookies) a Partitioned atribut nemá žádný účinek.