Kokią problemą turite?
Trys atvejai atrodo panašiai, tačiau jų priežastys skirtingos:
- Gaunate šlamštą. Pašto dėžutė prisipildo reklamų, nuorodų ar beprasmio teksto. Forma praleidžia botus.
- Forma praneša apie klaidą. Lankytojai mato „There was an error trying to send your message. Please try again later.“ (lietuviškose svetainėse – išverstą). Tai gali būti apsauga nuo šlamšto arba laiškų siuntimo problema.
- Trūksta tikrų užklausų. Niekas nesiskundžia, bet nieko ir negaunate. Tada apsauga galbūt atmeta žmones arba laiškai nepasiekia jūsų pašto dėžutės.
Prieš pridėdami apsaugą, pirmiausia nustatykite, kuris tai atvejis. Kaip tai padaryti, aprašyta skyriuje „Laiškų siuntimas ar apsauga nuo botų?“.
Ką Contact Form 7 turi pats
Contact Form 7 turi kelias integruotas priemones nuo šlamšto (patikrinta su 6.1.7 versija):
- Draudžiamųjų sąrašas. CF7 kiekvieną pateikimą tikrina pagal sąrašą, esantį „Settings → Discussion“ („Disallowed Comment Keys“). Atitiktis laikoma šlamštu. Tai padeda prieš pasikartojančius žodžius ir domenus, bet ne prieš naujus tekstus.
- Viktorinos laukas. Su žyma
[quiz]forma užduoda jūsų pačių sugalvotą klausimą. Botai, pildantys bet kokią formą, suklumpa; botai, taikantys būtent į jūsų svetainę – ne. - Akismet. Turint Akismet įskiepį ir Akismet raktą, CF7 vardą, el. pašto adresą ir tekstą tikrina per Akismet paslaugą.
- reCAPTCHA v3. CF7 įkelia scenarijų iš Google ir atmeta pateikimus, kurių balas žemesnis už ribą.
- Cloudflare Turnstile. CF7 integruoja Turnstile; scenarijus įkeliamas iš Cloudflare.
Draudžiamųjų sąrašas ir viktorina veikia be išorinės paslaugos. Akismet, reCAPTCHA ir Turnstile siunčia jūsų lankytojų duomenis atitinkamam tiekėjui, ir tai turi būti nurodyta jūsų privatumo politikoje.
Kada verta papildomos apsaugos nuo botų
Specializuota apsauga nuo botų verta, jei
- šlamštas vis tiek ateina, nepaisant draudžiamųjų sąrašo ir viktorinos,
- nenorite įkelti scenarijų iš Google ar Cloudflare,
- norite matyti, kodėl buvo atmestas kiekvienas atmestas pateikimas.
Jei jūsų formai pakanka viktorinos, daugiau nieko nereikia. Niekam nereikalinga apsauga – tik dar vienas klaidų šaltinis.
SilentShield nustatymas Contact Form 7
Oficialus įskiepis „SilentShield – Captcha & Anti-Spam“ apsaugo Contact Form 7 be jūsų pačių kodo. Jį išbandėme su Contact Form 7 6.1.7 ir WordPress 7.0.
- Įdiekite ir aktyvuokite įskiepį iš WordPress katalogo.
- Skiltyje „SilentShield → API / SilentShield“ įveskite savo raktą, spustelėkite „Validate“, įjunkite „Activate API“ ir išsaugokite.
- Skiltyje „SilentShield → Forms“ įjunkite Contact Form 7.
Svetainė turi veikti per https, kitaip formos pateikti nepavyks. Visi žingsniai ir išbandyti formų įskiepiai pateikti WordPress vadove. Kiekvienas pateikimas įskaičiuojamas į kvotą, žr. kainos ir kvotos.
Tikrų pateikimų ir nesėkmingų bandymų testavimas
Tikras pateikimas: Atidarykite puslapį privačiame lange, užpildykite formą ranka ir ją pateikite. Turėtumėte pamatyti CF7 patvirtinimą su žaliu rėmeliu.
Nesėkmingas bandymas: Tą pačią formą be naršyklės nusiųskite į CF7 sąsają. Formos ID ir _wpcf7_unit_tag reikšmę rasite puslapio šaltinio kode, paslėptuose formos laukuose.
curl -X POST "https://example.com/?rest_route=/contact-form-7/v1/contact-forms/123/feedback" \
-F "_wpcf7=123" -F "_wpcf7_unit_tag=wpcf7-f123-p45-o1" -F "_wpcf7_container_post=45" \
-F "your-name=Test" -F "[email protected]" -F "your-message=Test"
Turėtumėte gauti atsakymą su "status":"spam". Naudojant SilentShield, pranešime nurodoma „Behavior check“.
Laiškų siuntimas ar apsauga nuo botų?
mail_sentspammail_failedvalidation_failedContact Form 7 „šlamštas“ ir „laiško išsiųsti nepavyko“ turi tą patį numatytąjį tekstą. Juos atskirti galite dviejose vietose:
- Pranešimo rėmelio spalva: oranžinė reiškia šlamštą, raudona – kad laiško išsiųsti nepavyko, jei jūsų tema neperrašo CF7 spalvų.
- Atsakymas naršyklėje: Kūrėjo įrankiuose (skirtukas „Network“) atsakyme į
feedbackyrastatus–spamarbamail_failed.
Jei tai mail_failed, apsauga nuo botų pateikimą praleido; problema yra WordPress laiškų siuntime. Tada patikrinkite pašto nustatymus, pavyzdžiui, su SMTP įskiepiu. Jei tai spam, pateikimą atmetė apsaugos priemonė. Naudojant SilentShield, pranešime nurodoma priežastis, pavyzdžiui, „Behavior check“.
Ribos
- Jokia apsauga nesulaiko šlamšto, kurį žmogus parašo ranka.
- Jei naršyklėje neveikia JavaScript, pateikimas į apsaugotą formą atmetamas.
- SilentShield apsaugo formas nuo botų. Jis nepakeičia žiniatinklio programų ugniasienės ar apsaugos nuo DDoS.