Hogyan állítsd be a Cloudflare-t, hogy ne blokkolja a feed és a képek letöltését?#

Miért blokkolja a Cloudflare a Mergadót, ha egyszer engedélyezve van az IP-címe#

Ha a webáruházad Cloudflare-t használ, előfordulhat, hogy a Mergadó (vagy egyes bővítményei, például a Feed Image Editor) nem tudja letölteni a feedet vagy a termékképeket, még akkor sem, ha az IP-címét már felvetted a whitelistre.

Ennek az az oka, hogy a Cloudflare az automatikus feedletöltést nem feltétlenül szokásos hozzáférésként értékeli, hanem gyanús forgalomként, és blokkolhatja, vagy úgynevezett biztonsági kihívást (challenge) jeleníthet meg. Vagyis egy “Just a moment…” típusú oldalt, amelyet csak egy JavaScriptet futtató böngésző tud megoldani, egy automatizált letöltő nem. Ez elsősorban az alábbi Cloudflare-funkciókat érinti:

  • Bot Fight Mode / Super Bot Fight Mode,
  • Managed Challenge (felügyelt kihívás),
  • Browser Integrity Check,
  • Hotlink Protection,
  • Security Level,
  • WAF Managed Rules.

Az IP-cím egyszerű hozzáadása a régebbi IP Access Rules (whitelist) listához gyakran nem kapcsolja ki ezeket a funkciókat. Ráadásul azt tapasztaljuk, hogy a Cloudflare egyes fiókokból fokozatosan kivezeti ezt a lehetőséget, és a rugalmasabb WAF Custom Rules eszközzel váltja fel. Ez az útmutató bemutatja, hogyan állíts be ezen keresztül megbízható kivételt a Mergadónak.

Milyen IP-címeket kell engedélyezned#

  • 81.31.39.112 – ez az az IP-cím, amelyről a Mergadó letölti a bemeneti feededet.
  • 81.31.39.116 – ezt az IP-címet használják egyes, termékképeket letöltő bővítmények (pl. Feed Image Editor, Bidding Fox, Pricing Fox, Fox Data+).

Ha a Mergadó más bővítményeit is használod, ellenőrizd az IP-címüket A Mergado és bővítményei IP-címei című cikkben.

Lépésről lépésre: kivétel beállítása a Cloudflare-ben#

a. Hozz létre egy új Custom Rule-t#

  1. Jelentkezz be a domained kezelőfelületére a Cloudflare-ben.
  2. A bal oldali menüben lépj a Security → WAF → Custom rules menüpontra (esetleg csak Security rules, a felület verziójától függően).
  3. Kattints a Create rule gombra.

b. Állítsd be a feltételt a Mergadónak#

A “When incoming requests match…” szekcióban állítsd be a feltételt úgy, hogy mindkét Mergado IP-címre illeszkedjen, például így:

(ip.src eq 81.31.39.112) or (ip.src eq 81.31.39.116)

Azt javasoljuk, hogy a feltételt ne célozd meg emellett konkrét elérési útra (URI Path) vagy HTTP metódusra. Minél egyszerűbb a feltétel, annál kisebb a hibalehetőség, és mivel csak két konkrét, megbízható IP-címről van szó, ez semmilyen módon nem csökkenti a webáruházad biztonságát a többi forgalommal szemben.

Ügyelj az elgépelésekre. Könnyen előfordulhat, hogy egy szövegmezőbe véletlenül bekerül egy plusz szóköz (pl. " /feed.xml" a "/feed.xml" helyett), vagy elgépeled az IP-cím egy számjegyét. Egy ilyen feltétel soha semmire nem fog illeszkedni, a szabály sosem lép érvénybe, és máshol fogod keresni a problémát. Mindig ellenőrizd a végleges formát a feltétel alatti Expression Preview mezőben.

c. Állítsd be a Skip műveletet, és jelöld be az összes komponenst#

  1. A „Then take action…" szekcióban válaszd a Skip műveletet.
  2. Jelöld be teljesen az összes opciót a „WAF components to skip" alatt:
    • All remaining custom rules
    • All rate limiting rules
    • All managed rules
    • All Super Bot Fight Mode Rules
  3. Nyisd meg a „More components to skip" részt is, és jelöld be ezeket is:
    • Zone Lockdown
    • User Agent Blocking
    • Browser Integrity Check
    • Hotlink Protection
    • Security Level
    • Rate limiting rules (Previous version)
    • Managed rules (Previous version)

Elég, ha egyetlen elem bejelöletlenül marad, és éppen az blokkolhatja tovább a letöltést.

d. Helyezd a szabályt az első helyre#

A „Place at" szekcióban válaszd azt, hogy a szabályt elsőként értékelje ki a rendszer (esetleg közvetlenül más, biztonsággal nem összefüggő technikai szabályok után). A Cloudflare a custom szabályokat fentről lefelé, sorrendben értékeli ki, és amint egy korábbi szabály blokkolja vagy kihívás elé állítja a kérést, előfordulhat, hogy a whitelist szabályod egyáltalán nem is kerül sorra.

Ha más biztonsági szabályaid is vannak a Cloudflare-ben (pl. bizonyos országokból érkező forgalom blokkolása, bot elleni védelem stb.), ellenőrizd, hogy egyik sincs a Mergado-szabály fölé helyezve.

e. Mentsd el a szabályt#

Kattints a Save gombra. A változás rendszerint néhány másodperc–perc alatt érvénybe lép.

Mi a teendő, ha a probléma a szabály beállítása után is fennáll#

Ellenőrizd, hogy a szabály valóban működik-e#

  1. A Cloudflare-ben lépj a Security → Events (vagy Security → Analytics → Events) menüpontra.
  2. Szűrd az eseményeket a forrás IP-cím szerint (81.31.39.112 vagy 81.31.39.116).
  3. Egy adott eseménynél nézd meg a „Matched service" szekciót. Ott ennek kellene szerepelnie: Action taken: Skip, valamint a szabályod neve.

Ha ehelyett más műveletet látsz (pl. Managed Challenge vagy Block) és egy másik szabályt, az azt jelenti, hogy a whitelist szabályod egyáltalán nem lépett érvénybe, és ellenőrizned kell a feltételt (b lépés) vagy a szabályok sorrendjét (d lépés).

Ellenőrizd a tárhelyoldali biztonsági beállításokat is#

Ha a webáruházad felügyelt tárhelyen fut (pl. Kinsta, WP Engine vagy hasonló szolgáltatás), előfordulhat, hogy saját, a Cloudflare-től független bot elleni védelemmel rendelkezik, amelyet külön kell beállítani. Így a Cloudflare helyes beállítása után is előfordulhat, hogy a feed vagy egy kép letöltési kérése továbbra is 403 Forbidden hibával zárul – ezúttal a tárhely, nem a Cloudflare miatt.

Ilyen esetben keresd meg a tárhely adminfelületén a bot elleni védelem szekciót (pl. „Bot protection"), és vedd fel oda a kivételek listájára mindkét Mergado IP-címet (ezt gyakran „Always allow" vagy hasonló néven találod). Egyes bővítményeknél (pl. Feed Image Editor) a kivételek közé felveheted azt a user agentet is, amellyel a bővítmény azonosítja magát: feedimageeditor/2.0.

Hogyan ismerd fel, hogy a Cloudflare vagy a tárhely blokkol#

Segíthet egy technikai teszt a szerver válaszára (pl. a curl -I parancs futtatása egy konkrét kép vagy feed URL-jén). A döntő jel a válaszban a cf-mitigated: challenge fejléc:

  • Ha jelen van, a kérést a Cloudflare akasztja meg (folytasd a fenti lépésekkel).
  • Ha hiányzik, de a kérés így is 403-as hibával zárul, az valószínűleg tárhelyoldali védelem, nem a Cloudflare.

Az olyan fejlécek, mint a server: cloudflare vagy a cf-ray, minden olyan válaszban megjelennek, amely áthalad a Cloudflare-en, akár blokkolja a kérést a Cloudflare, akár csak továbbítja a forgalmat a tárhely felé – önmagukban tehát nem árulják el, ki blokkolta a kérést.

GYIK#

Miért nem elég hozzáadni a Mergado IP-címét a régebbi whitelisthez (IP Access Rules)?#

Az IP Access Rules beengedheti a kérést, de nem feltétlenül kapcsolja ki az összes többi védelmet (Bot Fight Mode, Managed Challenge, Browser Integrity Check stb.), amelyek így is blokkolhatják a feed vagy a kép letöltését. Megbízhatóbb megoldás ezért egy Skip művelettel rendelkező Custom Rule létrehozása, amely az adott IP-címekre kifejezetten kikapcsolja ezeket a védelmeket.

Tényleg be kell jelölnöm az összes komponenst a „WAF components to skip" alatt?#

Igen, azt javasoljuk, hogy mindet jelöld be. A szabály csak két konkrét, megbízható Mergado IP-címre vonatkozik, így ezzel nem csökkented a weboldalad védelmét a többi forgalommal szemben. Elég, ha egyetlen elem bejelöletlenül marad, és a letöltés továbbra is sikertelen lehet.

Mindent az útmutató szerint állítottam be, a feed/képek mégsem töltődnek le. Mi a teendő?#

Ellenőrizd a Cloudflare Security → Events szekciójában, hogy ténylegesen milyen műveletet és milyen szabályt alkalmazott a Cloudflare a 81.31.39.112 vagy a 81.31.39.116 IP-címről érkező kérésekre. Ha Skip helyett más műveletet látsz, nézd át újra a szabály feltételét (esetleges elgépelés) és a sorrendjét a többi szabály között. Ha a szabály megfelelően működik, és mégis 403-as hibát kapsz, az a tárhelyed önálló védelme miatt lehet.

Honnan tudom, hogy a Mergadó valóban letölti a feedet?#

A Mergadó projektedben nyisd meg a Előzmények oldalt, és az Esemény típusa oszlopban szűrj a Letöltés (esetleg Termékimport) értékre. Így megjelennek az egyes letöltési kísérletek, az időponttal és a letöltött termékek számával együtt.

Hasznos volt ez a cikk?