Ako imate WordPress sajt, najverovatnije ste se već upoznali sa spem komentarima, ili spemom preko kontakt forme sajta. Još nisam pronašao način da se ovo u potpunosti eliminiše, ali sam uspeo to veoma drastično smanjiti, i ovaj članak objašnjava kako.
Ažuriranje, novembar 2023:
Unapredio sam zaštitu u odnosu na ovde napisano uputstvo. Koristim The SEO Framework Honeypot (plaćeno) i CloudFlare-ov JS challenge (besplatno – članak je na engleskom).
Sadržaj:
- Uvod – šta je to SPEM?
- WordPress anti-spem podešavanja
- Kreiranje i podešavanje Gugl reCAPTCHA
- WordPress reCAPTCHA anti-spam zaštita
4.1. Instaliranje plagina za kontakt formu (opciono)
4.2. Instaliranje i podešavanje reCAPTCHA plagina
4.3. Podešavanje plagina za kontakt formu (opciono) - Zaključak
- Rešavanje problema sa AMP stranicama
- The SEO Framework (TSF) Honeypot zaštita
1. Uvod – šta je to SPEM?
“Spem” je jeftin mesni narezak koji je bio jedna od retkih dostupnih (mesnih) namirnica u Velikoj Britaniji, nakon drugog svetskog rata. Ljudima je tada već izlazio na nos, što se kaže.
Legendarni Monti Pajtonovci, napravili su skeč o tome, 1970. godine (noviji snimak spem skeča).
Time inspirisani, ljudi su počeli tako nazivati dosadne reklamne mejlove, koje niko nije tražio, a ipak zatrpavaju sanduče. Tako je nastalo savremeno značenje izraza “spem” (eng. “spam”).
Danas je spem sveprisutan na Internetu. Bilo da ga ljudi ručno šalju i postavljaju (masovno), bilo da za to prave botove (masovno puta milion).
Moji WordPress sajtovi postoje od 2015. godine. Komentari ispod mojih članaka služe u edukativne svrhe: sadrže mahom konkretna pitanja i odgovore. Nisam želeo da budu zatrpani u moru spem reklama. Isto važi i za moje poštansko sanduče. Šta sam uradio da zaustavim spem?
2. WordPress anti-spem podešavanja
Prva stvar koju treba uraditi je da zaštitite svoj sajt – kako ga ne bi hakovali, pa koristili za spamovanje vašeg, i drugih sajtova. Za to, vidite članak: Zaštita WordPress sajta.
Nakon toga, idemo na fazu dva: “Kako da ne nosimo pun novčanik na Štrand.” 🙂
Drugim rečima: isključimo komentare tamo gde nisu potrebni. U WordPress bek-endu biramo meni opciju: Settings -> Discussion. Sledeća podešavanja su dobra za početak (ako imate dobar razlog da ih menjate, samo napred):
Svaka opcija samu sebe objašnjava, pa neću trošiti reči. Ispod ovih opcija postoje dva velika (bela) polja, da vidimo šta s njima (potrebna objašnjenja su na samoj slici ispod):
Ostaje nam još sekcija sa avatarima. 100% sigurno rešenje je da ih “disejblujete.” Ako aktivno držite na oku sekciju sa komentarima, ovo će raditi posao:
3. Kreiranje i podešavanje Gugl reCAPTCHA
Sada ćemo kreirati i podesiti Gugl reCAPTCHA zaštitu od spema za naš sajt.
Prvo se ulogujte na svoj Gmail nalog. Ako ga nemate, napravite ga (link ka Gmail sajtu) – postupak je lak i neću ga ovde objašnjavati.
Onda idemo na:
www.google.com/recaptcha/about/
Sada možemo uneti naše sajtove (može ih biti više) i izabrati željene opcije:
Naredni ekran pokazaće naš javni i tajni ključ (“site key” i “secret key”). Zapišite ih (copy/paste). Mada ih možete uvek ponovo videti odlaskom na Gugl reCAPTCHA admin konzolu:
www.google.com/recaptcha/admin/
Klikom na zupčanik (“Settings”), pa na “reCAPTCHA keys:”
Sada ćemo se vratiti u WordPress i videti čemu je služila sva ova “gimnastika.” 🙂
4. WordPress reCAPTCHA anti-spam zaštita
Pre bilo kakvog daljeg rada, podesite WordPress da koristi SMTP za slanje mejlova. Ovo je važno i nije vezano samo za spam zaštitu, već za normalan rad generalno.
Vreme je da se naš trud isplati, još samo nekoliko koraka:
- Instaliranje plagina za kontakt formu (opciono)
- Instaliranje i podešavanje reCAPTCHA plagina
- Podešavanje plagina za kontakt formu (opciono)
4.1. Instaliranje plagina za kontakt formu (opciono)
Ako želite da vam se ljudi mogu obratiti mejlom preko sajta, postoje dva načina.
Prvi način je manje praktičan za posetioce, ali sigurniji što se tiče spama.
Napišite svoj mejl na “čudan” način. Zvuči glupo, trebalo bi da je lako isprogramirati robota da ovo zaobiđe, ali meni se dobro pokazalo u praksi. Šta mislim pod “čudan?”
Moje ime (relja) @ ovaj domen (bikegremlin.com).
Znate gde da mi pišete, zar ne? A čak i činjenica da je mejl adresa boldovana ne donosi puno spamera.
Drugi način je praktičniji za posetioce, ali maličice manje otporan na spam (mada i dalje prilično dobar).
Počinje instaliranjem Contact Form by BestWebSoft plagina (kako instalirati WordPress plagin). Tu ćemo i stati za sada, idemo na spam zaštitu, pa se vraćamo na konfigurisanje ovog plagina.
4.2. Instaliranje i podešavanje reCAPTCHA plagina
Za pokretanje naše Gugl spam zaštite na sajtu, instaliraćemo reCaptcha by BestWebSoft plagin (kako instalirati WordPress plagin).
Zatim idemo na reCaptcha -> Settings i podešavamo ga. Sada ćemo iskoristiti javni (“site”) i privatni (“secret”) ključ iz Gugl reCAPTCHA konzole koje smo “napravili” u 3. poglavlju.
Kada je uspešno prošla verifikacija (3 i 4 na slici iznad), možemo podesiti i ostale opcije, pa snimiti podešavanja:
Ne zaboravite da ispraznite (“purge/clean”) sav keš sajta nakon ovoga.
Napomena/Ažuriranje:
reCaptcha V2 je nešto manje efikasna varijanta i vidljiva je na ekranu. Ipak, manje je sklona bagovanju kada se nalazi iza strožije Cloudflare zaštite. Zato sam sad prešao na V2.
Ako koristite kontakt formu na sajtu, ostaje još taj plagin da podesimo, čitajte dalje.
4.3. Podešavanje plagina za kontakt formu (opciono)
Ovde se neću baviti detaljnim podešavanja plagina (to možda u posebnom članku, do tad samo dokumentacija BestWebSoft-a). Ali objasniću sve opcije bitne za prevenciju spama.
Krećemo sa unošenjem mejl adrese na koju želimo da nam pristižu sva “pisma” poslata preko kontakt forme na sajtu:
Idemo sad na “Additional Settings.” Pod tačkom 3 na slici ispod unesite mejl adresu sa koje vaš sajt zaista šalje mejlove (podešavanje WordPress-a za SMTP slanje mejlova).
Na narednoj slici preskačem opcije za podešavanje jezika i detalja forme, to je van opsega ovog članka.
Sad možete dodati kontakt formu na bilo koju stranicu ubacivanjem “Shortcode” Gutenberg bloka sa sledećim kodom: “[ bestwebsoft_contact_form ]” (samo bez razmaka između teksta i zagrada).
5. Zaključak
Lepo je što WordPress omogućava dvosmernu komunikaciju sa posetiocima sajta. Zbog onog jednog promila ljudi koji misle da je spamovanje dobra ideja, ovakva zaštita je neophodna.
WordPress-ova podešavanja objašnjena u 2. poglavlju dosta pomažu. Možete kreirati svoju anti-spam listu ručno, koristeći opcije prikazane na slici 2. Ipak, svaki spam komentar će biti upisan u bazu (pa posle obrisan kada kliknete na “Empty Spam”). Ovo usporava rad sajta u izvesnoj meri. Mislim da je bolje da reCAPTCHA spreči spam komentare da se uopšte ostave.
Spameri stalno smišljaju nove načine da automatski zatrpavaju sajtove, a zaštita to prati više, ili manje uspešno. Metodi opisani u ovom članku meni za sad rade posao. Ako se nešto promeni, ažuriraću članak.
6. Rešavanje problema sa AMP stranicama
Ažuriranje, 2022, avgust:
Zbog različitih komplikacija i upitnih prednosti, odlučio sam bataliti AMP na svojim sajtovima, tako da možete skočiti odmah na poglavlje 7. Za više detalja možete videti moju Gugl AMP studiju slučaja.
U vreme pisanja prve verzije ovog članka, reCaptcha by BestWebSoft ne radi sa AMP verzijom sajta, ukoliko postavite verziju reCaptcha na “Invisible.” Ako iz bilo kog razloga insistirate na toj verziji, trebalo bi da isključite (“suzbijete,” eng. “Suppress”) ovaj plagin za AMP.
Testirao sam ovo par dana. Nije bilo spema sa AMP verzije sajta (na “regularnoj” verziji, bez reCAPTCHA bude desetine spem komentara po danu). Mada, kako se vidi na slici iznad, ovaj plagin omogućava da se sakrije reCAPTCHA ikonica čak i za verziju 3, koja nije nevidljiva sama po sebi (“Enable this to hide reCaptcha Badge for Version 3…”). Ja to koristim.
“Version 3” je manje problematično rešenje generalno, po mom iskustvu.
Za svaki slučaj, ako nekom zatreba, evo kako se reCaptcha deaktivira za AMP:
Međutim, nakon jednog od apdejtova plagina u poslednjih mesec dana, počeo sam imati probleme sa komentarima na AMP stranicama. Svima koji pokušaju komentarisati, izbacivalo je ovu grešku:
“Error: User response is missing. Click the BACK button on your browser and try again.”
Čak ni “Suzbijanje” reCaptcha plagina (kako je prikazano na slici 12) i brisanje LiteSpeed keša nisu pomogli. Problem sa brzim rešavanjem ovog problema je u tome što je poseban “proizvođač” teme, poseban za reCaptcha plagin, poseban za LiteSpeed Cache – a nisam 100% siguran da problem nije u nekom konfliktu između teme i (jednog, ili više od) plaginova. To je “lepota” korštenja WordPress-a.
Solomonsko rešenje, dok ne utvrdim u čemu je problem, je isključivanje AMP-a za stranicu sa pitanjima i odgovorima, i ispisivanje poruke da se ona poseti u slučaju problema sa postavljanjem komentara, ali tako da se ta poruka ispisuje samo posetiocima AMP verzije sajta. To sam uradio pomoću ovog koda u child temi, koji ispisuje poruku odmah ispod dugmeta za postavljanje komentara:
// BEGIN comments for amp - goes after main content
$gremlin_amp_comments = function() {
if ( function_exists( 'is_amp_endpoint' ) && is_amp_endpoint() ) {
?>
<p>If you're having <strong>problems with posting a comment</strong> (from a smartphone),<br />
<visit the <a title="Questions & Answers Page" href="https://io.bikegremlin.com/18172/questions/" target="_blank"><strong>Questions & Answers Page</strong></a>.</p>
<?php
}
};
// For Paired/Native mode.
add_action( 'generate_after_main_content', $gremlin_amp_comments );
// END comments for amp - goes after main content
Ovako poruka izgleda:
If you’re having problems with posting a comment (from a smartphone),
visit the Questions & Answers Page.
7. The SEO Framework (TSF) Honeypot zaštita
Ovog leta (2022.) je količina spama drastično povećana. Kao da su botovi postali dovoljno pametni da zaobiđu reCAPTCHA zaštitu. Zato sam odlučio tražiti dodatne anti-spam metode.
Veliki sam ljubitelj The SEO Framework-a (ili, skraćeno “TSF”). To je WordPress SEO plagin, ali u svojoj plaćenoj verziji nudi i odličnu spem zaštitu u vidu svog “Honeypot” dodatka.
Za detalje možete videti moju kompletnu The SEO Framework (TSF) Pro recenziju.
TSF-ov Honeypot radi fenomenalno, bez i jednog propuštenog spam komentara za sada. Koristim ga u kombinaciji sa reCAPTCHA. Slojevita zaštita (kao i slojevita odeća 🙂 ) je generalno uvek dobra ideja.
TSF Pro (sa sve Honeypot i drugim lepim dodacima) košta $7 mesečno (plaća se $84 na godišnjem nivou). To je jedini WordPress plagin koji koristim u plaćenoj verziji. Mislim da vredi – ne samo zbog spam zaštite (mada je spam zaštita koju nudi izvanredna, neprevaziđena rekao bih).