Kuidas võidelda kommentaarispämmiga?

Blogi loomine pakub meile hea võimaluse jagada igapäevaelus ette tulevate aktuaalsete küsimuste ja probleemide lahkamisel sündinud ideid ja muud mula laiema avalikkusega 🙂

Üks viimase aja jututeemasid on kommentaarispämm, millega puutuvad kokku nii veebilehekülgede omanikud kui ka tavakülastajad.

Blogi loomine pakub meile hea võimaluse jagada igapäevaelus ette tulevate aktuaalsete küsimuste ja probleemide lahkamisel sündinud ideid ja muud mula laiema avalikkusega 🙂

Üks viimase aja jututeemasid on kommentaarispämm, millega puutuvad kokku nii veebilehekülgede omanikud kui ka tavakülastajad.

Kommentaarispämm 1Enamus meist on ilmselt näinud veebilehtede kommentaariribadel tavalisest „sisukamaid” postitusi, mis kutsuvad mõnd farmatseutilist imet soetama või meelitavad ekstravagantset ajaviitmisvõimalust tutvustavale leheküljele.

Piisab vaid pilgust siinkohal ära toodud näitele, et mõista – spämmerite ampluaal ei ole piire 🙂

Kommentaarispämmi leviku populaarsuse tagavad otsingumootorid, mis oma indekseerimisalgoritmides seostavad lehekülgede „usaldusväärsust” sellega, kui palju ühele või teisele leheküljele on internetiavarustest viidatud. Selleks, et oma ärile otsingumootorites soodsat positsiooni saavutada sokutavadki spämmerid oma linke täiesti suvalistele kodulehekülgedele.

Lisaks sellele, et kommentaarispämm on lehekülgedel kole vaadata ja muidu tülikas, on innukad spämmerid reaalseks ohuks suurematele ja populaarsematele veebilehekülgedele.

Kui spämmer teeb mõnele koduleheküljele piisavalt palju päringuid korraga, on võimalik, et lehekülje töö saab tõsiselt häiritud ning halvemal juhul saavutatakse Denial of Service (DoS) sarnane efekt, kui kogemata surutakse põlvili terve server. Kommentaaride edukas lisamine on nimelt enamasti seotud ühe või mitme SQL INSERT lausega ja serveri kõvakettale kirjutamisega. Need aga on serveri ressursside seisukohalt kallid protseduurid.

Eriti halvasti on lood siis, kui kommentaari lisamise funktsioon on külge poogitud mõnele mahukale skriptile, mis ühtlasi ka juba olemasolevaid kommentaare, viimaseid uudiseid ja veel üht-koma-teist kuvab ja seetõttu käivitab serveris kommentaari lisamisel veel hulgaliselt andmebaasipäringuid või operatsioone. Sellisel juhul ei ole jõudlusprobleemide põhjustamiseks „heal” juhul isegi seda vaja, et kommentaaride sisestamine edukas oleks.

Zone.EE virtuaalserverites on kommentaarispämmi poolt tingitud DoS rünnakute vältimiseks kasutusel peen loogika, mis paralleelsete päringute arvu kuhjumisel virtuaalserveris kuvab „üleliigsetele” päringutele vastuseks HTTP veateate 503 ehk, „Service Unavailable” . Seetõttu ei häiri kommentaarispämmi ohvriks langenud virtuaalserver enamasti teisi kliente, kuid rünnaku ohvri päeva see loomulikult ei päästa.

Kuidas aga kommentaarispämmi vältida ning selle mõjusid oma virtuaalserverile minimeerida?

Järgnevalt pakuks välja mõned võimalused:

Masina ja mehe eristamiseks kasutage lihtsustatud Turingi testi ehk CAPTCHA meetodit.

Kuna spämmi lisavad kommentaaridesse enamasti automaatsed skriptid, tuleks esitatada kommentaari sisestajale mõni selline küsimus, millele ideepoolest peaks suutma vastata vaid „päris inimene”.

CAPTCHA levinuim vorm on näiteks pildile genereeritud juhuslike tähtede ning numbrite jada sisestamise nõudmine. Väga ei maksa aga liiale minna, liigse tähtede väänamise ja psühedeelilise taustavärvi tulemusena ei pruugi ka lugemisprillid koju unustanud tavakodanik end testist läbi murda.

CAPTCHA implementeerimiseks PHP’s on olemas ka mitmeid valmis näidiseid ja klasse. Kuna neid on väga-väga palju, siis siinkohal neid kõiki ära tooma ei hakka, abiks on kiire Google otsing.

Inimest ja skripti vahel vahet tegemiseks võite valida ka mõne kaudse tunnuse, näiteks veebilehitseja võimekus.

Üks populaarsemaid võimalusi selleks on külastaja veebilehitseja võimekuse kontroll – näiteks JavaScripti toe olemasolu uurimine. Automatiseeritud spämmiprogrammid, mis Perlis, Pythonis või muus skriptimiskeeles kirjutatud on, reelina sellist võimekust ei oma. Ühe JavaScripti olemasolu kontrolli baasil tehtud protseduuri oleme ka ise kunagi välja pakkunud https://data.zone.ee/index.php?p=news&id=102.

Filtrit võib täpsustada veel kommentaarispämmi ära tundmisele pühendunud teenuse kasutamisega.

Sellist teenust osutavad näiteks LinkSleeve ja Akismet . Mõlemad võimaldavad automaatselt kontrollida kommentaaridesse lisatud URL’e nende tsentraalsete andmebaaside vastu.

Kommentaare lisavad skriptid tuleb teha võimalikult kiired ja väikesed.

Kommentaare töötlevate skriptide kompaktsus tagab nende kiire käivitamise ning ressursside mõistliku kasutamise. Optimeeritud skriptide kasutamisel on väiksem oht, et juhuslik spämmer võib virtuaalserveri tööd häirida.

Oma kontrollmehhanismide loomisel arvestage, et skriptid ei surffa homo sapiensi kombel.

Spämmerite skriptid teevad tihti POST päringuid otse failile, mis kommentaare töötleb, jättes veebivormi enda pärimise üldse vahele. Seega peavad kindlad kontrollmehhanismid olema just selles failis.

Sajaprotsendilisi garantiisid ei saa anda, et nõuannete järgimisel solgilaviin täielikult lõppeb, kuid oluliselt peaks seda olema võimalik vähendada küll.

Eelpoolnimetatud meetodid ei aita aga kahjuks suvalise anonüümse möla vastu, mida kommentaariribad täis on – selle vastu aitab ainult südame kõvaks tegemine ja kommenteerimisvõimaluse kinnikeeramine 🙂

Arvestades kurikaelte leidlikkust, ei tule ilmselt niipea puudust soovitustest, mida teiega jagada.

Kommentaarispämm 2