INTEGRITY Dokumentace

Vložit do iFrame

Vzhledem k tomu, jak čekárna sleduje postup návštěvníka, musíte zadat určité atributy souboru cookie ke správnému vložení čekárny do iFrame.

Kontext

SameSite atribut cookie ↗ určuje, zda lze tento soubor cookie sdílet s jinými doménami načítanými na stejné stránce (reklamní bannery, iFrame). Prohlížeče ve výchozím nastavení neodesílají cookies u mezidoménových dílčích požadavků, aby útočníkům zabránily v krádeži nebo úpravě informací uložených ve vašich souborech cookie.

Toto chování však může zabránit tomu, aby čekárna uživatele správně zařadila do fronty, pokud je čekárna vložena do iFrame. Čekárna závisí na __cfwaitingroom cookie ke sledování uživatele ve frontě. Protože však prohlížeč ve výchozím nastavení blokuje doručení tohoto souboru cookie čekárně, nemůže aktivní a řadící čekárna uživatele zařadit do fronty a nikdy mu neumožní přístup k aplikaci.

Dostupné možnosti

Chcete-li přizpůsobit, jak čekárna reaguje na soubory cookie, zahrňte cookie_attributes objekt, když vytvoření čekárny (k dispozici pouze přes API).

K dispozici jsou tyto možnosti:

Povolit průchod souborů cookie přes iFrame

Pokud vkládáte čekárnu do iFrame, zadejte následující hodnoty u cookie_attributes objekt, když vytváření čekárny (k dispozici pouze přes API):

Příklad

Požadavek

Požadovaná oprávnění API tokenu

Alespoň jeden z následujících oprávnění tokenu je povinné:
  • Waiting Rooms Write
Vytvoření čekárny
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/waiting_rooms" \
	--request POST \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"name": "shop_waiting_room",
		"description": "Waiting room for webshop",
		"host": "shop.example.com",
		"path": "/shop",
		"queue_all": true,
		"new_users_per_minute": 200,
		"total_active_users": 300,
		"session_duration": 1,
		"disable_session_renewal": false,
		"json_response_enabled": false,
		"queueing_method": "FIFO",
		"cookie_attributes": {
				"samesite": "none",
				"secure": "auto"
		}
	}'

Odpověď

{
  "success": true,
  "errors": [],
  "messages": [],
  "result": [
    {
      "id": "1111111111111111111111",
      "created_on": "2021-01-01T05:20:00.12345Z",
      "modified_on": "2021-01-01T05:20:00.12345Z",
      "name": "shop_waiting_room",
      "description": "Waiting room for webshop",
      "host": "shop.example.com",
      "path": "/shop",
      "queue_all": true,
      "new_users_per_minute": 200,
      "total_active_users": 300,
      "session_duration": 1,
      "disable_session_renewal": false,
      "json_response_enabled": false,
      "queueing_method": "FIFO",
      "cookie_attributes": {
        "samesite": "none",
        "secure": "auto"
      }
    }
  ]
}

Omezení

Hlavní webové prohlížeče zavedly omezení pro cookies třetích stran, což je stejný typ cookies, jaký čekárny používají uvnitř iframe. Waiting Room využívá Cookies Having Independent Partitioned State (CHIPS) ↗ k obejití těchto omezení, existují však určité nevýhody:

Obecně platí, že pokud dochází k problému s nastavením nebo načtením cookie čekárny, lze očekávat, že uživatelé zůstanou zaseknutí na konci fronty a v analytice se budou počítat jako více uživatelů.

Tato omezení se nemusí uplatnit, pokud vložená stránka a stránka, do které je vložena, sdílejí společný název domény. Pokud je stránka například na adrese example.com vložení čekárny na shop.example.com mohou prohlížeče považovat za cookies první strany, a nepodléhají tak omezením platným pro cookies třetích stran.