Spam si anti-spam – cum ne aparam noi pe zice.ro

expand
Mai 11

No spamVazand ca tehniciile de SPAM s-au schimbat intre timp, am schimbat si noi metodele cu care ne aparam si ne-am gandit sa publicam un articol pentru ca si cei cu bloguri pe domeniu propriu pot beneficia de aceleasi metode antispam.

Atentie! Urmeaza o multitudine de detalii tehnice! :-)

Primul pas in oprirea spammerilor este editarea fisierului .htaccess (aflat in folderul de baza unde se afla site-ul nostru) si adaugarea acestor randuri exact la inceputul fisierului, inainte de regulile de rewrite WordPress:

#stopping spammers
#stop requests with no UA or referrer
RewriteCond %{HTTP_REFERER} ^$
Rewritecond %{HTTP_USER_AGENT} ^$
RewriteCond %{REMOTE_ADDR} !^85\.214\.229\.212$
RewriteRule ^(.*) - [F]
#stop fake trackbackers
RewriteCond %{HTTP_USER_AGENT} ^.*(Opera|Mozilla|MSIE).*$ [OR]
RewriteCond %{HTTP_USER_AGENT} ^$
RewriteCond %{REQUEST_METHOD} ^POST$
RewriteRule ^(.*)/trackback/ - [F,L]

Hopa, ce se intampla aici? Pe scurt, verificam daca vizitatorul ne spune de unde vine, adica de pe Google sau de pe alt site sau a introdus zice.ro manual in browser si ce browser foloseste. Nu ne intereseaza momentan continutul acestor date ci doar daca exista sau nu deoarece orice browser transmite aceste date pe cand spammerii si scripturile folosite de ei in general nu o fac. Ideea este ca vizitatorul este blocat inainte de a accesa continutul nostru. Partea a doua opreste trackback-urile care ne transmit un browser deci Opera sau Mozilla sau MSIE – aici smecheria functioneaza exact invers: un trackback provine de pe un site si nu are cum sa ne transmita ca foloseste un browser.

Pentru mai multe detalii referitor la aceste metode puteti citi articolul original in engleza: More ways to stop spammers and unwanted traffic scris de Donncha care a fost programatorul care a inceput sa publice varianta multiuser de WordPresss acum multi ani cand era disponibil doar pentru un singur blog. Mai multe detalii referitoare la blocarea vizitatorilor inainte de a accesa continutul nostru gasiti la sfarsitul acestui articol.

Cand vine vorba de WordPress, in primul rand folosim pluginul numit Bad Behavior care opreste cea mai mare parte din spamerii automatizati in functie de “comportament” – adica verifica tehnica cu care vizitatorul acceseaza site-ul nostru (de ex. referer header empty, required header ‘Accept’ missing, header ‘Expect’ prohibited; resend without Expect, cele mai multe teste find executate inainte ca wordpress sa fie incarcat) . Daca tehnica seamana cu cea a spammerilor, vizitatorul este blocat inainte de a accesa continutul nostru cu un mesaj care il informeaza de ce a fost blocat si ce poate face pentru a rectifica problema. Versiunea de Bad Behavior folosita de noi este modificata special pentru wordpress multisite deoarece acest plugin creaza cateva tabele in baza de date pentru fiecare blog si ofera administratorului fiecarui blog acces la optiunile pluginului. Aceste functiuni au fost extrase din versiunea care ruleaza pe zice.ro

Daca vizitatorul trece de acest test in urmatorul test este comparat cu listele de spammeri de pe Project Honeypot un project care analizeaza spammeri si mentine liste actualizate bazate pe adrese de IP-uri si emailuri, iar in cazul in care vizitatorul este blocat i se prezinta o metoda de contact cu explicatia din ce motive a fost blocat si metode de rectificare a problemei.

Dupa aceste teste vizitatorului i se prezinta site-ul iar in cazul in care comenteaza sau doreste sa isi creeze un blog datele lui tehnice adica IP si email sunt comparate cu listele mentinute de StopForumSpam si BotScout.

Cine trece de toate aceste teste, este cu siguranta un om si nu un bot (programe si scripturi folosite de spammeri pentru a posta sute de linkuri si reclame in cateva secunde) si IP-ul lui sau emailul folosit de el nu au mai fost folosite pentru a trimite spam. Dupa ce si-a creat un blog, un pas care este verificat de Anti Splog un plugin comercial, vizitatorul poate sa isi foloseasca blogul. Daca vizitatorul a comentat, comentariul este verificat cu bazele de date TypePad AntiSpam inainte sa publicam comentariul lui.

In cazul in care comentariul nu poate fi verificat ca find 100% ham (termenul tehnic pentru non-spam) este plasat in “comment queue” pentru moderare de catre adminul blogului respectiv.

Pentru cei curiosi inca cateva pluginuri aditionale care ne ajuta la functiile descrise mai sus si care ruleaza pe zice.ro:

  • AVH First Defense Against Spam – acest plugin ajuta la cateva teste descrise mai sus
  • Stop Spammer Registration – acest plugin ajuta la cateva teste descrise mai sus. Blogul autorului care mai are cateva pluginuri interesante se gaseste aici: Blog’s Eye
  • Simple Trackback Validation – acest plugin opreste trackback-uri cu spam si fara backlink-uri
  • TanTanNoodles Simple Spam Filter – acest plugin filtreaza comentarii cu mai mult de 5 link-uri, comentarii care contin numai link-uri si comentarii care seamana in mai mult de 75% cu un comentariu mai vechi pentru a prevenii spammeri care copiaza un comentariu valid si adauga cateva link-uri la el
  • Akismet – Akismet? Cum adica Akismet, ati platit licenta?

Secretul cum a ajuns Akismet pe lista noastra:

TypePad AntiSpam ofera exact acelasi serviciu ca si Akismet, in back end ruleaza acelasi “motor” de verificare (desigur testele sunt diferite) asa ca puteti folosi pluginul de Akismet care este updatat regulat (in comparatie cu cel de TypePad AntiSpam care nu a mai fost updatat de vreo 3 ani) pentru a accesa serviciile TypePad AntiSpam. Tot ce trebuie sa faceti este sa urmati instructiunile celor de la TypePad AntiSpam. In principiu trebuie sa schimbati referintele in codul pluginului din rest.akismet.com in api.antispam.typepad.com.

Pentru o activare globala, adica pentru toate blogurile zice.ro, cu un singur cod TypePad AntiSpam, folosim aceasta linie de cod in fisierul wp-config.php

define(‘WPCOM_API_KEY’,'introducodultauaici’);

Mai sus am spus:

vizitatorul este blocat inainte de a accesa continutul nostru.

- ce inseamna asta?

O explicatie simplificata:
In principiu treaba functioneaza asa: vizitatorul cauta pe google dupa “blog gratis” si gaseste zice.ro in lista de rezultate. Da click pe link si ajunge pe zice.ro. In background, browserul lui “vorbeste” cu serverul nostru (care ruleaza pe apache2) si printre altele ii spune ca vine de pe google si ca a cautat dupa “blog gratis” dupa care serverul se uita in fisierul .htaccess (un fisier cu indicati si directive pentru acest site) si executa toate indicatiile de acolo. Urmatorul pas este ca serverul vede ca fisierul care trebuie servit este index.php asa ca porneste “motorul” PHP (limbajul de scripting pe care ruleaza wordpress). PHP isi incarca configuratie si porneste incarcarea wordpress, adica toate pluginurile care sunt executate automat, scripturi integrate in wordpress, cod executat in template-uri deci pe scurt o groaza de lucru care implica multa memorie consumata si ar putea fi degeaba daca dupa incarcare se determina ca vizitatorul este un spammer.

Aici intervine idea cu: hai sa blocam vizitatorul inainte de a accesa continut. Blocand spammerii inainte sa accese continut, nu consumam nici CPU, nici memorie si nici timp pierdut degeaba accesand baza de date in care se afla zice.ro

Pentru cei care folosesc wordpress multisite si vor sa scape de cateva splog-uri (blog creat de un spammer) va mai zic o smecherie:

# BEGIN ANTISPAMBLOG REGISTRATION
RewriteEngine On
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} .wp-signup.php*
RewriteCond %{HTTP_REFERER} !.zice.ro. [OR]
RewriteCond %{HTTP_USER_AGENT} ^$
RewriteRule (.*) http://die-spammers.com/ [R=301,L]

Folositi aceste randuri in fisierul .htaccess pentru a bloca spammerii care acceseaza direct pagina voastra de inregistrare sau nu va transmit informatii despre ce browser folosesc. Idea este ca vizitatorul trebuie mai intai sa ajunga pe zice.ro inainte sa dea click pe “vreau si eu un blog” – daca acceseaza pagina de creare al unui blog nou direct este trimis spre http://die-spammers.com dar puteti alege orice alt url sau alta reactie pentru ei.

Noi pe zice.ro am modificat urmatorul rand: RewriteCond %{REQUEST_URI} .signup-*/ deoarece la noi linkul de inregistrare se schimba zilnic si contine 3 cifre aleatoare in loc de * – de ex. astazi inregistrarile se efectueaza pe signup-567/

As vrea sa inchei acest articol care a iesit cu mult mai lung decat dorisem cu avertizarea ca acest articol nu este un tutorial copy-paste, multi pasi din cei descrisi aici au nevoie de customizare inainte sa poata fi folositi pe blogurile voastre. De asemenea nu am putut descrie si explica fiecare pas in detaliu deci daca aveti intrebari, punteti-le aici in comentarii. Speram ca acest articol va va fi de folos in lupta impotriva spammerilor!

Acest articol a fost publicat si pe zice.ro

P.S. Nu am uitat de solutiile care implica captcha dar nu dorim sa recurgem la ele pe zice.ro.

Author Ovidiu
Category Guest posts
Comments 2 Comments

Cât de accesibil este un blog ? Accesibilitate şi utilizabilitate

expand
Iun 02

Pe cât de uşor este să-ţi faci blog (instalarea WordPress nu este condiţionată de obţinerea unui MBA), pe atât de dificil este să găseşti echilibrul între temă, plugin-uri şi conţinut, astfel încât rezultatul să dea impresia de unitate şi, deloc întâmplător, blogul să fie accesibil unor categorii cât mai largi de utilizatori.

Nu este suficient să ai conţinut de calitate, dacă nu eşti capabil să prezinţi acele informaţii într-o formă atractivă, menită să îmbie şi nu să agaseze cititorul.

Am văzut destule bloguri unde grija pentru cei care le trec zi de zi pragul virtual este plasată în coada… listei, de parcă header-ul în flash, faptul că tu susţii consumul de apă plată cu lămâie (sau umbrele de culori diferite), prietenii de pe Facebook, ciripiturile de pe Twitter… tot acest zgomot de fond este mai important decât ultimul articol. Read more →

Author Andrei
Comments 5 Comments

Trafic prin schimb de linkuri

Apr 23

Pe fostul forumul Blogoree.ro schimbul de linkuri a fost mentionat de nenumarate ori ca metoda eficienta de a face trafic. Prin vara lui 2009, la blogmeetul din Bacau, discutam despre subiectul asta cu Contrasens. El fiind linkat de un blogger cu trafic mare, zicea ca nu primeste prea multi vizitatori prin linkul din blogroll.

Or, schimb de linkuri = tu ma pui pe mine in blogroll, eu te pun pe tine si asteptam vizitatorii. Din pacate ei nu vor veni nici prea des, nici prea multi.

Ca sa lamuresc un pic ideea ce o voi dezvolta mai jos: vizitatorii dau click pe linkurile din blogroll cand se plictisesc de blogul tau sau considera ca nu gasesc informatiile de care sunt interesati. In exemplul urmator, vizitatorul de care vorbesc este unul ce dispune de mult timp liber si are chef de citit. Sa-i spunem “cititorul perfect”. Read more →

Author l3st
Category Guest posts
Comments 7 Comments

Ai un website/blog nou. Cui ii pasa?

Apr 20

Americanii au o vorba: “everyone and their dog has a blog”. Mai pe romaneste, zi de zi apar bloguri noi ca ciupercile dupa ploaie. La ce bun, insa, daca n-a auzit nimeni de ele (cu exceptia cainelui, bineinteles)?
In acest moment ai doua optiuni pentru a-ti promova blogul abia creat:
a) fie iti stressezi prietenii din Yahoo Mess cu mass-uri din ora in ora care anunta ca “cel mai misto blog, frate!” e pe piata;
b) fie citesti mai departe:

5 metode de promovare rapida pentru un website/blog nou

OK, presupunand ca domeniul a fost deja ales, hosting-ul platit, WordPress-ul instalat si tema schimbata de cel putin zece ori, te trezesti in fata unui website nou-nout si realizezi ca greul de abia acum incepe.
Read more →

Author Cathubodua
Category Guest posts
Comments 5 Comments

Self-Hosted sau Free-Hosted: Asta-i intrebarea

Apr 14

Pe vremea lui Shakespeare, lucrurile erau simple, grijile erau mici sau, cele mari (razboaie, ciuma, etc) nu aveai cum sa le eviti. Intrebarea era la fel de simpla: a fi sau a nu fi? Te palea ciuma, raspunsul era a nu fi, nu te palea, mergeai cu a fi. Repet, asta ERA intrebarea. Daca Hamlet traia in zilele noastre si isi facea un blog, primul lucru de care se lovea era problema mai-mult-decat-existentiala a domeniului si, implicit a host-ului pe care sa si-l tina, iar varianta intrebarii shakespeareane moderne suna cam asa: self-hosted sau free hosted?

Ca blogger incepator, free-hosted-ul pare nu doar tentant, ci singura optiune disponibila. Iti faci un cont pe blogspot, completezi 2-3 campuri, alegi un subdomeniu si voila! Ai blog. Poti sa incepi direct sa scrii, ca doar de-asta ti-ai facut blog, nu? Read more →

Author Tudi
Category Guest posts
Comments 3 Comments
Articole recomandate