# Spamvédelmi kiegészítők és megoldások

> Mely hivatalos kiegészítők, külső bővítmények és kódrészletek segítenek bot, hivatkozás, e-mail, IP, ország és szavak szerinti spamszűrésre, és hogyan működnek együtt a Mentés és folytatás funkcióval.

Egyetlen módszer sem fog meg minden spamet, ezért érdemes több megoldást együtt használni. Ez a fejezet a problémák szerint csoportosítva sorolja fel, mi segíthet. A beépített védelmről az [első lépések](https://hub.hellowp.io/hu/plugins/gravityforms/spamvedelem-elso-lepesek/) és a [haladó honeypot](https://hub.hellowp.io/hu/plugins/gravityforms/spamvedelem-halado-honeypot/) fejezet szól.

Jelölések: **hivatalos** a Gravity Forms saját kiegészítője vagy funkciója, **labor** a Gravity Labs kísérleti projektje, **külső** harmadik fél megoldása. A külső szolgáltatásokat, bővítményeket és kódrészleteket csak javaslatként említjük: nem teszteltük és nem támogatjuk őket. Élesítés előtt ellenőrizd a feltételeiket, a licencet, a követelményeket, és próbáld ki őket tesztkörnyezetben.

## Megoldások problémák szerint

### Botok által küldött spam

- **Haladó honeypot** (hivatalos): beépített, az űrlap **Spamészlelés** beállításában kapcsolható be. Több módszert használ: a hagyományos rejtett mezőt, JavaScript-azonosítót, állapot-ellenőrzést és választható beküldési sebesség ellenőrzést.
- **Zero Spam** (külső, GravityKit, ingyenes): JavaScripttel beszúrt, időkorlátos tokent használ. Ha a token hiányzik vagy nem egyezik, a bejegyzés spam.
- **Spam Hexer** (külső, Gravity Wiz, ingyenes): JavaScript-alapú munkabizonyíték (proof-of-work). A böngésző láthatatlanul elvégez egy számítást a beküldés előtt, ami a valódi látogatónak elhanyagolható, a botoknak drága.

### Hivatkozások és URL-ek

A beépített hivatkozásészlelés a támogatott mezőkben keresi a linkeket. Ha talál, a mező érvénytelen lehet, vagy a bekapcsolt haladó honeypot spamnek jelölheti a beküldést.

### Meghatározott e-mail-címek vagy domainek tiltása

A **Zero Spam** e-mail-elutasítási szabályokkal bővíti az e-mail mezőket: globális és mezőnkénti szabályokkal letilthatók vagy spamnek jelölhetők a megadott címek, domainek vagy minták.

### Eldobható vagy érvénytelen e-mail-címek

- **QuickEmailVerification** (labor): a QuickEmailVerification API-val ellenőrzi az E-mail mező értékét, elutasítja az ingyenes, eldobható, mindent elfogadó és szerepkör alapú címeket. Bizonyos domainek címeit az API-hívás előtt is visszautasítja.
- **Email Validator** (külső, Gravity Wiz): automatikus e-mail- és domainérvényesítést ad az E-mail mezőhöz, és a Kickbox és ZeroBounce szolgáltatásokkal is együttműködik.

### IP-címek tiltása

- **AbuseIPDB kiegészítő** (hivatalos): valós idejű IP-hírnévellenőrzés az AbuseIPDB adatbázisával. A bejegyzés spam, ha a beküldő IP-címe a tiltólistán van, vagy a visszaélési pontszáma eléri a beállított küszöböt.
- **Limit Submissions** (külső, Gravity Wiz): a beküldések korlátozása felhasználó, szerepkör, IP, URL vagy mezőérték szerint adott időszakra.

### Országok tiltása

Az **AbuseIPDB kiegészítő** országtiltólistát is tartalmaz: a kétbetűs országkódokkal megadott országokból érkező beküldések blokkolva lesznek, függetlenül az IP-cím pontszámától.

### Meghatározott szavak tiltása

- **Blocklist** (külső, Gravity Wiz): blokkolja a tiltott szavakat vagy kifejezéseket tartalmazó beküldéseket, a WordPress hozzászólásoknál is használt tiltólistával. Beállítható egy mezőre, több mezőre vagy az űrlap összes mezőjére.
- **Moderálás** (hivatalos): elemzi a beküldéseket és szűri a nemkívánatos nyelvezetet. Egyéni szólistát is támogat, az ilyen szavakat tartalmazó bejegyzéseket automatikusan „toxikusnak” jelöli.

### Véletlenszerű, értelmetlen vagy rossz nyelvű tartalom

- **Akismet** (hivatalos): elküldi a beküldéseket az Akismet szolgáltatásnak elemzésre. A spamnek ítélt beküldések mentődnek, a bejegyzés spam állapotú.
- **Spam Hexer** (külső): választható AI-osztályozása átnézi a tartalmat, és jelzi az SEO-spamet, a hamis interakciót és a témán kívüli tartalmat.
- **Zero Spam** (külső): választható AI-alapú ellenőrzése jelzi azt a spamet, amit a tokenellenőrzés elmulasztott, és visszaállítja a tévedésből blokkolt valódi beküldéseket.

## Az Akismet és a beépített integráció

A Gravity Forms régebben beépített támogatást adott az Akismet Anti-Spam bővítményhez: ha az Akismet bővítmény aktív volt, a Gravity Forms magától használta spamészlelésre, akkor is, ha az Akismet kiegészítő nem volt telepítve. Ez a beépített integráció megszűnik a 3.0-s verziótól (vagy egy hamarosan érkező kiadástól), a továbbiakban az Akismet használatához az **Akismet kiegészítő** kell. A kiegészítő bővített lehetőségeket ad, például űrlapszintű beállításokat a pontosabb szűréshez. Az Akismet által spamnek jelölt beküldések **spam** állapotot kapnak, ezért nem indítanak értesítést vagy kiegészítőt.

## Hivatalos kiegészítők áttekintése

Az alábbi kiegészítők minden licenccel elérhetők az **Űrlapok → Kiegészítők** oldalról.

| Kiegészítő | Mit csinál |
|---|---|
| AbuseIPDB | IP-hírnév ellenőrzése, ország- és domaintiltólista. A bejegyzés spam, ha az IP a tiltólistán van, vagy a visszaélési pontszám eléri a küszöböt. |
| Akismet | A beküldéseket az Akismet szolgáltatás elemzi, a spamnek ítéltek spam állapottal mentődnek. |
| Cloudflare Turnstile | Adatvédelmet és felhasználói élményt előtérbe helyező CAPTCHA: süti nélkül, a munkamenet viselkedése alapján választ be nem avatkozó böngészőkihívást. A beküldés blokkolva lesz, vagy elbukik az érvényesítésen. |
| Friendly Captcha (labor) | A Friendly Captcha v2 mező: munkabizonyíték-alapú megoldás, ahol a böngésző egyedi feladványt old meg. Megfelel a GDPR-nak, a CCPA-nak és más adatvédelmi szabályozásoknak. |
| QuickEmailVerification (labor) | Az E-mail mező érvényesítése az API-val. |
| reCAPTCHA | Pontszám alapú Google reCAPTCHA v3 vagy Enterprise kulcsok, és kihívás alapú (jelölőnégyzetes) Enterprise kulcsok. Pontszám alapú kulcsnál, ha a reCAPTCHA szkript nem fut le vagy a válasz érvénytelen, az űrlap mezőhiba nélkül elbukik az érvényesítésen. Jelölőnégyzetes kulcsnál a **reCAPTCHA jelölőnégyzet** mező bukik el, ha a kihívást nem teljesítették. A bejegyzés spam, ha a pontszám egyenlő vagy kisebb a küszöbnél. |
| CAPTCHA mező (régi) | A beépített **CAPTCHA** mező csökkentheti a botspamet, de akadálymentességi problémák miatt már nem ajánlott. A Google régi, 2-es reCAPTCHA-jával (jelölőnégyzetes vagy láthatatlan) vagy a külső Really Simple CAPTCHA bővítménnyel (képalapú) működik. |

## Együttműködés más funkciókkal

### Mentés és folytatás

Ha egy űrlapon bekapcsolod a **Mentés és folytatás** funkciót, érdemes a honeypotot is bekapcsolni az űrlap beállításaiban. Ha a honeypot-érvényesítés elbukik, a piszkozat nem mentődik. Ilyenkor az egyéni spammegerősítés látszik, vagy az új űrlapoknál használt alapértelmezett szöveg a beállított Mentés és folytatás megerősítés helyett.

A captchákat (a reCAPTCHA minden verzióját és a Turnstile-t) ilyenkor nem érvényesíti a rendszer. A Zero Spam támogatja a Mentés és folytatás védelmét. A Mentés és folytatás megerősítés e-mail mezőjét a WordPress érvényesíti, amelynek eredményére szűrő van, így a továbbfejlesztett e-mail-érvényesítést nyújtó bővítmények is működnek. A 3.0-s és újabb verziókban a `gform_email_field_rejectable_values` és a `gform_field_validation` szűrő is támogatott.

### Részleges bejegyzések kiegészítő

A **Részleges bejegyzések** kiegészítővel a bekapcsolt honeypot megakadályozza a részleges bejegyzés mentését vagy frissítését, ha elbukik az érvényesítésen. A captchák nem használhatók a részleges bejegyzések mentésének megakadályozására. A `gform_email_field_rejectable_values` szűrő támogatott: ha az e-mail mezőben elutasítandó érték van, a részleges bejegyzés nem mentődik vagy frissül.

Más mezőtípusoknál a `gform_field_validation` szűrőben ezzel a sorral jelölheted az értéket spamnek, és így megakadályozhatod a mentést:

```php
$field->set_context_property( 'is_value_spam', true );
```

Egyéni spamellenőrzések eredménye alapján a `gform_partialentries_abort_save` szűrővel is megakadályozhatod a részleges bejegyzés mentését vagy frissítését.

## Tanúsított fejlesztők kiegészítői

- **Advanced Phone Field** (Gravity Wiz): automatikus telefonszám-érvényesítést ad a Telefon mezőhöz.
- **Blocklist** (Gravity Wiz): a beküldéseket a WordPress „Nem engedélyezett hozzászólás-kulcsszavak” listájával (korábban Comment Blocklist) veti össze. Egy mezőre, több mezőre vagy az egész űrlapra beállítható. Választható, hogy a mező bukjon el az érvényesítésen, vagy az űrlap bukjon el a honeypot-érvényesítésen.
- **Email Validator** (Gravity Wiz): lásd fent.
- **Gravity Connect OpenAI** (Gravity Wiz): ellenőrizheti, hogy a beküldés tartalma megfelel-e az OpenAI használati irányelveinek.
- **Limit Submissions** (Gravity Wiz): lásd fent.
- **One-Time Password** (CosmicGiant): ellenőrző mezőt ad az űrlaphoz. A beküldés előtt a látogató gombbal e-mailben vagy SMS-ben kér ellenőrző kódot, és az igazolás után küldheti be az űrlapot.
- **Spam Hexer** (Gravity Wiz, ingyenes): a Gravity Forms beküldéseiben és a WordPress hozzászólásokban is észleli a spamet. JavaScript-alapú munkabizonyítékot használ, és választható AI-osztályozással jelzi az SEO-spamet, a hamis interakciót (például az általános dicséretet, mint „Nagyszerű blog!”), a témán kívüli bejegyzéseket és más szemetet. A beállításokban eldöntheted, hogyan kezelje a spamet: elbukhat az érvényesítésen, megszakíthatja a beküldést mentés nélkül, vagy elmentheti a bejegyzést vagy hozzászólást spamként.
- **Zero Spam** (GravityKit, ingyenes): több technikával észlel spamet: időkorlátos token a beküldésben vagy a Mentés és folytatás kérésben (ha hiányzik vagy nem egyezik, a bejegyzés spam, illetve a mentés elmarad); e-mail-elutasítási szabályok globálisan és mezőnként; választható AI-alapú ellenőrzés; választható együttműködés a Shield Security bővítménnyel, amelynek botészlelését (silentCAPTCHA) további jelként használja.

## Külső bővítmények

### Tiltólisták

| Bővítmény | Mit csinál |
|---|---|
| Blacklist Manager | Blokkolja a tiltólistáidra illeszkedő beküldéseket (IP-címek, e-mail-címek, telefonszámok vagy domainek). |
| BSK Forms Blacklist | Blokkolja a tiltólistáidra illeszkedő beküldéseket (e-mail-címek, IP-címek vagy más értékek). |
| Disposable Email Blocker | Az e-mail mező érvényesítését bővíti az eldobható vagy ideiglenes címek elutasításával. |

### Captchák

| Bővítmény | Mit csinál |
|---|---|
| Captcha.eu | Láthatatlan viselkedéselemzéssel véd a botok ellen, feladvány és képválasztás nélkül. |
| CaptchaFox | CaptchaFox mezőt ad, amely különböző jelekkel és kihívásokkal, sütik és követők nélkül igazolja a felhasználót. |
| Friendly Captcha for WordPress | FriendlyCaptcha mező: munkabizonyíték-alapú megoldás, ahol a felhasználó eszköze oldja meg a titkosítási feladványt. |
| hCaptcha for WP | hCaptcha mező, a reCAPTCHA adatvédelmet előtérbe helyező alternatívája. |
| MultiForm Anti-Spam Image CAPTCHA | Teljesen testreszabható, képalapú CAPTCHA mező. |
| SilentShield | Láthatatlan CAPTCHA és spamvédelem kihívásellenőrzéssel és botészlelő heurisztikával. |
| TrustCaptcha | Trustcaptcha mező: többrétegű védelem munkabizonyítékkal és intelligens botpontszámmal. |
| WordPress Captcha Plugin Pro | BWS Captcha mező, külső szolgáltatás nélkül: nincs API-kulcs és követés, minden a saját oldaladon dolgozódik fel. |

### Mezőérvényesítés

| Bővítmény | Mit csinál |
|---|---|
| Byteplant Email Validator | A Byteplant szolgáltatásával észleli az érvénytelen, elírt, eldobható vagy nem létező címeket. |
| Byteplant Phone Validator | A Byteplant szolgáltatásával ellenőrzi a telefonszám formátumát, létezését, szolgáltató- és régióadatait. |
| Clearout Email Validator | A Clearout több mint 20 valós idejű ellenőrzésével dönti el a cím állapotát. |
| DeBounce Email Validator | A DeBounce szolgáltatásával észleli az érvénytelen, eldobható, szerepkör alapú vagy nem létező címeket. |
| Dilli Email Validator | A Dilli szolgáltatásával észleli az érvénytelen, eldobható vagy nem létező címeket. |
| GF No Duplicates | Egyedi tokennel megakadályozza, hogy azonos POST-kérések (például a böngésző vissza vagy frissítés után újraküldött kérései) duplikált bejegyzést hozzanak létre. |
| Regex Textfield | Új mezőtípus, amelyben reguláris kifejezéssel adhatod meg, hogyan érvényesítse a rendszer a beküldött értéket. |

### Ellenőrzés e-mailben vagy SMS-ben (opt-in, OTP)

| Bővítmény | Mit csinál |
|---|---|
| Double Opt In for Gravity Forms | Kétlépcsős megerősítés: a beküldés után ellenőrző hivatkozást küld e-mailben, és a bejegyzést csak a kattintás után fogadja el. |
| Gravity Forms OTP Verification (SMS/EMAIL) | Egyszeri jelszó (OTP) SMS-ben vagy e-mailben: az űrlap csak az időkorlátos kód megadása után fogadható el. |
| miniorange OTP Verification Addon | Egyszeri jelszó (OTP) SMS-ben vagy e-mailben, időkorlátos kóddal. |

### Spamészlelés

| Bővítmény | Mit csinál |
|---|---|
| CleanTalk | A CleanTalk szolgáltatás felhőalapú spamadatbázisával és viselkedési heurisztikával valós időben blokkolja a spambotokat. |
| Fullworks | Szerveroldali ellenőrzésekkel, heurisztikával és beállítható szabályokkal észleli és blokkolja a spambeküldéseket. |
| HighPots Spam Protection | Honeypot-szerű és más rejtett mezős ellenőrzések: a rejtett mezőt kitöltő beküldéseket elutasítja. |
| Honeypot Guard | Adatvédelmi szempontból is jó, CAPTCHA nélküli, láthatatlan észleléssel dolgozó spamvédelem. |
| Maspik | Honeypot és más technikák a botok csendes kiszűrésére. |
| OOPSpam | Az OOPSpam felhőalapú API-jával ellenőrzi a beküldéseket ismert spammintákra, visszaélő tartalomra és botviselkedésre. |
| Shield Security Pro | Viselkedéselemzéssel, tiltólistákkal és blokkolási szabályokkal állítja meg a botokat és a gyanús beküldéseket. |
| WP Armour | Honeypot mezők és választható időalapú ellenőrzés: aki kitölti a rejtett mezőket vagy túl gyorsan küld be, azt blokkolja. |

## Kódrészletek

A kódrészletek a téma `functions.php` fájljába vagy egy saját funkcióbővítő pluginba kerülhetnek.

### Mezőérvényesítés

A 2.9.15 verzió óta az E-mail mezőnek önálló szűrője van, a `gform_email_field_rejectable_values`. Vele részleges (például domain) vagy teljes e-mail-címek utasíthatók el. Ha elutasítandó értéket talál, a mező nem megy át az érvényesítésen, és az űrlap hibaüzenettel jelenik meg újra. A szűrő dokumentációjában példa van az eldobható domainek elutasítására is.

A `gform_field_validation` és a `gform_validation` szűrővel egyedi érvényesítést készíthetsz. A szűrők dokumentációjában példák vannak:

- az E-mail ellenőrzése külső API-val (például QuickEmailVerification),
- a beküldés megakadályozása szólista alapján,
- a beküldés megakadályozása, ha URL-t adnak meg az Egysoros vagy Bekezdés mezőben,
- cirill karakterek tiltása.

### Spamszűrő

A `gform_entry_is_spam` szűrővel spamnek jelölhetsz beküldéseket. A szűrő dokumentációjában példák vannak:

- integráció a ZeroBounce e-mail-érvényesítő API-val,
- URL-ek keresése a mezőértékekben,
- beküldések korlátozása IP-cím szerint,
- annak ellenőrzése, hogy a vezeték- és keresztnév mező különböző értéket tartalmaz,
- az IP-cím országkódjának ellenőrzése az ipapi.co szolgáltatással.
