# Haladó honeypot és beküldési sebesség ellenőrzése

> A haladó honeypot ellenőrzései, a beküldési sebesség küszöbének megválasztása, a Normál és Szigorú mód, és mi történik a jelölt beküldéssel.

A **haladó honeypot** a Gravity Forms beépített spamészlelője. Nem egyetlen módszerre épít, hanem több ellenőrzést kapcsol össze, hogy felismerje a botok által generált és a kézi spamküldési kísérleteket. Az űrlap **Beállítások → Űrlap beállításai** oldalán, a **Spamészlelés** szakaszban a **Spam észlelése a haladó honeypot segítségével** kapcsolóval kapcsolod be.

## Az ellenőrzések

### Hagyományos rejtett honeypot mező

Egy mező, amelyet az igazi látogatók sosem látnak és nem töltenek ki, a botok viszont gyakran igen. Ha értéket tartalmaz, a beküldés spam.

### JavaScript-azonosító (verzióhash)

Egy JavaScripttel előállított, az oldalra jellemző verzióazonosító kerül a beküldésbe. Ha hiányzik vagy érvénytelen, az érvényesítés elbukik, mert ez azt jelenti, hogy a JavaScript nem futott le a várt módon, ami a botokra jellemző.

### Állapot-ellenőrzés

Ellenőrzi, hogy a rejtett állapot-mező dekódolható, a megfelelő űrlaphoz tartozik, nem járt le, megegyezik azzal az URL-lel, amelyhez készült, és hogy több rejtett mező értéke megfelel a várt értéknek. Spam a beküldés, ha:

- a rejtett állapotmező értéke érvénytelen (nem dekódolható, nem a várt adatot tartalmazza, másik űrlaphoz tartozik vagy lejárt),
- a beküldés más URL-ről érkezett, mint amelyhez az állapot készült,
- különböző rejtett mezők értéke nem a várt,
- egy vagy több mező elbukott az állapot-ellenőrzésen, mielőtt az űrlapot végül sikeresen beküldték.

### Beküldési sebesség ellenőrzése

Választható ellenőrzés. Az oldal betöltése és az olyan műveletek közti időt méri, mint a **Beküldés**, a **Tovább** vagy a **Vissza** gombra kattintás, és spamnek jelöli azt a beküldést, amelyet gyorsabban fejeztek be, mint ahogy ember képes lenne rá. Spam a beküldés akkor is, ha az időadat hiányzik, érvénytelen, vagy a beállított küszöb alatt van.

### Hivatkozások és URL-ek észlelése

A támogatott mezőkben (lásd az [első lépések](https://hub.hellowp.io/hu/plugins/gravityforms/spamvedelem-elso-lepesek/) fejezetet) keresi a hivatkozásokat és URL-eket. A **Ha hivatkozás/URL található a támogatott mezőkben** beállítás az űrlap **Spamészlelés** szakaszában azt szabályozza, hogy mi történjen: a mező érvénytelennek jelölhető az érvényesítéskor, vagy, ha a haladó honeypot be van kapcsolva, a beküldés spamnek jelölhető. A beállítás mezőnként is hangolható.

## Beküldési sebesség ellenőrzése részletesen

Az ellenőrzés egyszerű gondolaton alapul: az embernek legalább néhány másodpercre van szüksége, hogy elolvasson, kitöltsön és beküldjön egy űrlapot, a spamküldő robotok viszont szinte azonnal. Így felismerhető a botforgalom anélkül, hogy a látogatónak CAPTCHA-t kellene megoldania vagy bármilyen plusz lépést tennie.

### Mikor hasznos

- Nyilvános, sok automatikus spamet kapó űrlapokon, például kapcsolati vagy regisztrációs űrlapokon.
- Ahol kifinomultabb botok megkerülik a többi honeypot-ellenőrzést (a rejtett mezőt vagy a JavaScript-azonosítót).
- Ahol védelmet szeretnél az űrlap használatának megnehezítése nélkül, például CAPTCHA nélkül.

### A küszöb megválasztása

A megfelelő küszöb az űrlap bonyolultságától függ. Alapnak a valódi látogatók viselkedését érdemes venni: a **Bejegyzések** lista **Beküldési sebesség** oszlopának bekapcsolásával látod, valójában mennyi idő alatt küldték be a valódi beküldéseket. Ha a küszöb túl magas, a gyorsan kitöltő valódi látogatókat is megjelölheti, ha túl alacsony, a gyorsabb botok átcsúsznak.

Vedd figyelembe azokat is, akik természetesen tovább használják az oldalt, például a segítő technológiát használókat. Mobilon gyakran kitöltött űrlapnál magasabb küszöb is megfontolandó, mert maga az oldal betöltése is tovább tarthat.

### Normál és Szigorú mód

Többoldalas űrlapnál, vagy ha a látogató érvényesítési hiba után többször küld be, több sebességadat is rögzül. A **Mód** beállítás azt határozza meg, hogyan súlyozza ezeket a rendszer:

- **Normál mód** engedékenyebb: elég, ha egyetlen rögzített sebesség a küszöb fölött van. Így átmehet az is, aki az űrlap többi részére időt fordított, majd gyorsan javított egy érvényesítési hibát.
- **Szigorú mód** agresszívebb: minden rögzített sebességnek a küszöb fölött kell lennie. Kitartó, kifinomultabb botok ellen jobb, de nagyobb eséllyel jelöli meg azt a valódi látogatót, aki az űrlap egy részén gyorsan végighaladt.

### Téves találatok csökkentése

Ha valódi beküldéseket jelöl spamnek, mielőtt úgy döntenél, hogy ez a funkció nem való az űrlapra, nézd meg ezt:

- A **Bejegyzések** listán nézd meg a rögzített sebességeket, nem túl magas-e a küszöb.
- Ha az űrlapon gyakoriak az érvényesítési hibák, érdemes a **Szigorú** módról **Normál**ra váltani.

A beküldési sebesség ellenőrzése a honeypot többi ellenőrzésével együtt dolgozik, és nem arra való, hogy önmagában fogja meg a spamet: egy réteg a többrétegű spamvédelemben.

## Mi történik a jelölt beküldéssel

Az űrlap beállításaitól függően a valamelyik ellenőrzésen fennakadt beküldés vagy teljesen blokkolva lesz (nem mentődik, nem jön létre bejegyzés), vagy spamként megjelölt bejegyzésként mentődik. Ez utóbbit a **Bejegyzések** lista **Spam** szűrője mutatja. Blokkolt vagy jelölt beküldésnél az űrlap értesítései és a kiegészítők feedjei nem futnak le, és ha van beállítva egyéni spammegerősítés, az jelenik meg, különben az alapértelmezett megerősítő szöveg látszik a beállított megerősítés helyett.

A haladó honeypot nem arra készült, hogy mindent megfogjon: egy réteg a többrétegű spamvédelemben.

## A honeypot a 2.7-es kiadás óta

A honeypot (méztál) olyan spamvédelmi módszer, amelyet gyakran előnyben részesítenek, mert nem terheli a látogatót, mint egy CAPTCHA. Rejtett mezőt ad az űrlaphoz (a rejtést CSS vagy JavaScript végzi). A látogató nem látja, a spamrobot viszont igen, és ha a mezőt kitölti, a beküldés spamnek számít.

A 2.7-es kiadás két újdonságot hozott:

- **Erősebb megvalósítás.** A PHP-s honeypot továbbra is rejtett mezőt ad az oldalhoz betöltéskor, és kitöltött mező esetén spamnek ítéli a beküldést. Ezt nem váltották le. Emellé egy JavaScripttel előállított extra bemenet kerül a beküldés POST-kérésébe, amelyet ember sosem lát. Ha az extra bemenet nem a várt értéket tartalmazza, a beküldés az ellenőrzésen elbukik.
- **Új szűrő.** A `gform_abort_submission_with_confirmation` szűrővel eldöntheted, hogy a beküldést a bejegyzés mentése nélkül megszakítja-e a rendszer.

### Hibaelhárítás

Mivel az új módszer JavaScripttel tölti ki a beküldéskor a bemenetet, bármilyen JavaScript-hiba miatt elbukhat az ellenőrzés. Ilyenkor a beküldést a honeypot beállításai szerint eldobja vagy spamnek jelöli a rendszer. A hibát okozhatja gyorsítótár, szkriptoptimalizálás, valamint téma- vagy bővítményütközés. A vizsgálat lépéseit a [Gyorsítótár és szkriptoptimalizáló](https://hub.hellowp.io/hu/plugins/gravityforms/hogyan-gyorsitotar-es-szkript-optimalizalo/) fejezet írja le.

## Szűrők fejlesztőknek

- `gform_honeypot_input_name`: a rejtett mező nevének módosítása.
- `gform_honeypot_labels_pre_render`: a honeypot mező címkéjének módosítása.
- `gform_abort_submission_with_confirmation`: a beküldés megszakítása egyéni megerősítéssel.
