Nola hobetu zure COREBlog bloga V: Erantzun eta trackback-etako spam-a nola ekidin
Spam-a, gaur egungo informazioaren gizartearen gaitz handi hori, blogetara ere iristen da aurtengo otsailaz geroztik. Blogetako erantzunetan eta, batez ere, trackback-etan sartzen dizkigute propaganda mezu zikin horiek, gure blogak erabat kakaztuz, eta horiek garbitzeak ematen duten lana oso nekagarria da. Nik nire blogean spam-a automatikoki inoiz publikatzera ailegatu gabe ezabatzeko modua inplementatu dut, e-mail bidezko jakinarazpen eta guzti, eta artikulu honetan azalduko dut nola egin dudan Zope eta CoreBlog produktuak erabiltzen dituzten beste blogek (gutxienez Eibar.org eta Goiena.net-ekoak) erabili nahi badute.
Azken aldian blogariok (edo nik bai behintzat) erantzunetan eta trackback-etan spam asko jasotzen ari gara. Gure blogak ia egunero publizitate-mezuz betetzen dira. Horrek lan gehigarria eskatzen digu blogarioi, mezuok ezabatzen ibili behar baitugu.
Bloga ostatatuta dagoen plataforma batzuk spam-aren aurkako neurri edo produktuak dituzte. Eibar.org eta Goiena.net-eko blogek CoreBlog produktua erabiltzen dute eta honek, librea eta pertsona bakarrak garatutakoa izanik, ez du spam-aren aurkako ezer inplementatuta, eta norbera moldatu behar!
Batzuek blogean spam-a agertu eta gero ezabatzen ibiliko dira, lan haundia eskatzen duena. Beste batzuk erantzunak eta trackback-ak moderaziopean jarriko zituzten; hau txukunagoa da, bloga inoiz ez baita "zikin" agertuko, baina moderatze-lana ia ezabatzearena bestekoa da. Beste batzuk zuzenean trackback edo/eta erantzun aukerak kenduko zituzten, baina pena da spam-aren erruagatik bloga mugatzen ibili beharra...
Nik inplementatu dudan soluzioa oso garbia eta erosoa iruditzen zait:
- Erantzun edo trackback bat publikatu ahala, automatikoki begiratzen da spam-a den ala ez.
- Horretarako, izenburua hutsik dagoen edo bertan hitz jakin batzuk ote dauden begiratzen da (hitz zerrenda hau orain arte jaso dudan spam-arekin osatu dut, baina kontuan izanda ez dela komeni positibo faltsurik ematea). Metodoa oso efektiboa dela iruditzen zait: orain arte inoiz ez dit positibo faltsurik eman, eta mezu mota berri bat agertzen delako ez detektatzea hilean behin-edo gertatzen zait soilik (eta orduan, hitz berriren bat gehitzen dut zerrendan eta kitto).
- Erantzun edo trackback-a spam dela uste bada, automatikoki ezabatzen da.
- E-mailez abisua iristen zait norbait erantzun edo trackback bat bidaltzen saiatu dela, spam-tzat hartu dela eta ezabatu egin dela, mezuaren datu guztiak erantsiz. Horrela, positibo faltsua izan bada, beti dago aukera berriz publikatzeko. Norbaitek pentsa lezake spam horiek gure postontzian jasotzea "rollo" bat dela, horrela bada aukera hori ken daiteke; niri ez zait hain gogorra egiten, Google-n GMail posta dudalako eta spam mezu horiek guztiak konbertsazio bakarrean pilatzen dizkidalako (norbaitek GMail posta kontu bat eduki nahi badu, niri idaztea besterik ez du, gonbidapenak ditut emateko).
- Egia esan, e-maila bidaltzearena spam-a izan nahiz ez egiten du, horrela bide batez norbaitek erantzunen bat publikatzen duenean segituan enteratzen naiz postaren bidez, blogean sartzen ibili beharrik gabe.
Jarraian erakutsiko dizuet nola egin daitekeen hau. Hasteko, "spamstrings" izeneko Script (Python) bat sortu behar dugu gure blogean, eduki honekin:
spam_strings=[
"adipex",
"alprazolam",
"ambien",
"bankruptcy",
"betting",
"biaxin",
"black",
"blackjack",
"care",
"cash",
"carisoprodol",
"casino",
"casinos",
"celebrex",
"cialis",
"cipro",
"construction",
"craps",
"credit",
"crestor",
"debt",
"diet",
"diets",
"gambling",
"health",
"hold",
"holdem",
"hydrocodone",
"jack",
"keno",
"levitra",
"loan",
"loans",
"lose",
"mortgage",
"mortgages",
"naproxen",
"omaha",
"partypoker",
"paxil",
"pharmacy",
"pharmacies",
"phentermine",
"pill",
"pills",
"plavix",
"poker",
"pokers",
"prescription",
"prescriptions",
"prilosec",
"refinance",
"roulette",
"rules",
"skin",
"slot",
"slots",
"strip",
"stud",
"texas",
"tournaments",
"training",
"tramadol",
"viagra",
"weight",
"wellbutrin",
"wsop",
"xenical",
"zithromax"]
return spam_strings
Nabarituko zenutenez, hemen gordetzen dira spam mezuek normalean izaten dituzten hitzak.
Gero, "methods" karpetan "addCommentHook" izeneko Script (Python) bat sortuko dugu (hau erantzun bat publikatzen denero exekutatzen da automatikoki, CoreBlog-en FAQ-ean azaltzen den bezala), "d" parametroa jasoko duena, eta hau idatziko dugu barruan:
spam_strings=context.spamstrings()
found=0
if d["title"]=="":
found=1
words=d["title"].split()
for word in words:
if word.lower() in spam_strings:
found=1
if found==1:
context.get_entry(int(d["parent_id"])).deleteComment(int(d["id"]))
spammezua="Spam-tzat hartu eta ezabatu egin da\n"
else:
spammezua=""
try:
mailhost=getattr(context, context.superValues("Mail Host")[0].id)
except:
raise AttributeError, "Mail Host object cant be found."
to_addr="gureposta@guredomeinua.com"
from_addr="gurebloga@guredomeinua.com"
mMsg="""To: %s
From: %s
Mime-Version: 1.0
Content-Type: text/plain;
Egilea %s
E-posta %s
URLa %s
Izenburua %s
IDa %s
Mamia
%s
%s
Kudeatzeko %s/%s/manage_comments
""" % (to_addr , from_addr , d["author"] , d["email"] , d["url"] , d["title"] , str(d["parent_id"]) , d["body"] , spammezua , context.blogurl() , str(d["parent_id"]))
mTo=to_addr
mFrom=from_addr
mSubj="Erantzuna gehitu da zure blogean!"
mailhost.send(mMsg, mTo, mFrom, mSubj)
Ondoren, berriz ere "methods" karpetan "addTrackbackHook" izeneko Script (Python) bat sortuko dugu (hau trackback bat publikatzen den bakoitzean automatikoki exekutatuko da), "d" parametroa jasoko duena, eta hau idatziko dugu bertan:
spam_strings=context.spamstrings()
found=0
if d["title"]=="":
found=1
words=d["title"].split()
for word in words:
if word.lower() in spam_strings:
found=1
if found==1:
context.get_entry(int(d["parent_id"])).deleteTrackback(int(d["id"]))
spammezua="Spam-tzat hartu eta ezabatu egin da\n"
else:
spammezua=""
try:
mailhost=getattr(context, context.superValues("Mail Host")[0].id)
except:
raise AttributeError, "Mail Host object cant be found."
to_addr="gureposta@guredomeinua.com"
from_addr="gurebloga@guredomeinua.com"
mMsg="""To: %s
From: %s
Mime-Version: 1.0
Content-Type: text/plain;
Egilea %s
URLa %s
Izenburua %s
IDa %s
Mamia
%s
%s
Kudeatzeko %s/%s/manage_trackbacks
""" % (to_addr , from_addr , d["blog_name"] , d["url"] , d["title"] , str(d["parent_id"]) , d["excerpt"] , spammezua , context.blogurl() , str(d["parent_id"]))
mTo=to_addr
mFrom=from_addr
mSubj="Trackback-a gehitu da zure blogean!"
mailhost.send(mMsg, mTo, mFrom, mSubj)
Eta kitto! Honekin nahikoa da. Aurrerantzean, norbaitek erantzun edo trackback bat bidaltzean, spam-a bada automatikoki ezabatuko da, inoiz publikatuta agertu gabe, eta spam-a izan nahiz ez, e-postaz abisatuko zaigu; horrela, positibo faltsua bada, berriz publikatuko ahal izango dugu; eta negatibo faltsua bada, mezuan bertan doan estekan klik eginda ezabatu ahal izango dugu eta hurrengorako spam kateen zerrenda eguneratu ahal izango dugu.
Aurreko artikuluak:
- Nola hobetu zure COREBlog bloga I: Estiloa aldatzeko aukera
- Nola hobetu zure COREBlog bloga II: Kontaktu orria spam-a ekiditeko
- Nola hobetu zure COREBlog bloga III: Kolaboratzaileei gure blogean artikuluak idazteko aukera eman
- Nola hobetu zure COREBlog bloga IV: Erantzun eta trackback-etako spam-a nola ekidin
eibar.org, goiena.net edo mutriku aldeko blog berrietan... ikusi Atxukale atariko tolon bloga .
Baina arrazoia duzu, ea Arrateko amak entzuten dituen spamaren aurkako plegariak ;-)