Webprogrammør

Simon Jensen

Bloggen med evigt skiftende tema!


 2

Blog spam

11. Oktober 2006, Kl. 22:13:30 af Simon Jensen

De sidste par poster har delvis handlet om dette, og med denne skal jeg nok sætte et punktum (eller i hvert fald stort komma) ved emnet - Spam og mere specifikt .
Fænomenet er tilsyneladende ikke fremmede, google giver i skrivende stund 659.000 resultater, ved en søgning på "blog spam".

I posten, "Edit in place med AJAX", skrev jeg om et magisk felt som jeg brugte til et spamfilter. Denne post handler om selve spamfilteret, og andre metoder at komme blog spam til livs.

Først og fremmest, kan man jo spørge sig selv, hvor vigtigt det egentligt er at komme blog spam til livs? Og ikke mindst, hvor vigtigt er det for dig?
For mit vedkomende, handler det om kontrol - alle programmører er kontrol-freaks! Og så er jeg vel lidt af en perfektionist. Jeg synes bare ikke det hørte nogen steder hjemme, at der i en post om X kommer et link/reklame til Y.

Men "udseende" og holdning er ikke altid den eneste grund. Langt hen ad vejen går det, at administrerer en hjemmeside, ud på at være god ved søgemaskinerne. Ifølge denne blog post, siges det at "84.8% af brugerne finder information om websites igennem søgetjenesterne".
Om du er en stor, eller lille virksomhed, eller bare en privat person, må man gå ud fra, at din side er blevet lavet med et formål - Og i de fleste tilfælde har man have et budskab eller et produkt, som man gerne vil have folk skal finde og se. Spam kan i denne situation være med til at mindske søgemaskiners "tro på din side", og samtidig kan evt. links posteret af spammeren, være med til at forøge spammerens "troværdighed" (med "tro" og "troværdighed", menes PageRank el.lign. mål).
Dermed et par grunde til at gøre noget ved det, og herunder et par metoder til samme.

Wikipedia introducerer os til følgende metoder:

  • Blocking by keyword:
    • Titlen beskriver metoden meget vel, altså går det i alt sin enkelthed ud på at blokkerer for posteringer der indeholder specielle keywords.
  • rel="nofollow":
    • rel(ation) er et HTML-tag. Tagget skal ikke blandes med det i robots-meta-sammenhæng. Benyttes det i meta-sammenhæng, vil det gøre at robotter (læs søgemaskiner), ikke følger links der findes på siden. Bruges det derimod som attribut til links (<a href...>), vil det ikke stoppe søgemaskiner i deres crawling, men betyde at linket ikke skal tages med i beregningen af f.eks. .
  • Turing tests / CAPTCHA:
    • Denne metode er jeg personligt stødt på op til flere gange. Ofter lige før en submit knap, indsættes et forvrænget billede, som indeholder en blanding af store og små bogstavere, samt tal. Denne tekst skal gengives i et andet fejl, og skal verificeres før en tekst kan posteres.
  • Distributed approaches:
    •  Idéen går ud på at checke links op mod links posteret "andre steder" på nettet. Og alt efter hvilket udfald dette check giver, sendes et "reject" eller "accept" tilbage.
  • Application-specific anti-spam methods:
    • Flere af de støre blogging-tools, som f.eks. Moveable Type har lavet deres egne spam-filtre og -metoder.
  • AJAX:
    •  Benyttes AJAX / XMLHttpRequests til postering, kan man undgå posteringer via almindelig POST requests.
  • Switching off comments:
    •  Efter min mening bør dette være den sidste løsning, men i nogle tilfælde ses det alligevel anvedt - Gangke simpelt helt at fjerne muligheden for at posterer kommentarer.

Six Apart har ligeledes lavet en lignende "Guide to Comment Spam". Siden giver en god introduktion til anatomien ved en postering, altså hvad kan man identificerer en postering på.
Nogle af de overstående metoder gå igen, men generelt (selvfølgelig) handler det om metoder/plugins til Moveable Type. Siden introducerer også begrebet/metoden IP throttling.

  • IP throttling:
    • Dette var den første metode jeg prøvede - men uden megen held! Når en person/klient poster en kommentar, er det simpelt at gemme dennes IP adresse sammen med selve posteringen. Hvis denne post viser sig at kunne klassificeres som spam, kan IP adressen tilføjes en liste som man kan checke op imod, når der i fremtiden bliver postert igen. IP adresser der findes i listen, bliver herefter nægtet adgang til at posterer.

Endelig faldt jeg over "Anti-spam Features" på Meta.Wikimedia.org, hvilket var den side jeg fandt mest interresant, og den side hvorfra jeg valgte den løsning jeg bruger nu. Som med Six Aparts guide, forklare denne side nogle af de samme metoder, men specielt blocking by keyword har de taget en indgangsvinkel til, som jeg synes godt om.

  • Blocking by keyword med regulære udtryk:
    • er et kapitel for sig selv, men kort fortalt kan man definere et mønster, og i dette tilfælde bruge dette mønster som en spam filter. Når en person/klient posterer sin kommentar, kan denne checkes op imod filteret, hvorefter kommentaren tilades eller nægtes.

I PHP kan dette gøres som herunder. $filter-variablen skal formateres som regulære udtryk formateres i PHP. $comment-variablen er den tekst streng som en bruger vil poste. Selve filtreringen (if()-sætningen) benytter eregi()-funktionen, som evaluerer om dele af vores filter indeholdes i strengen kommentaren. I dette tilfælde vil vi ikke modtage kommentarer, som indeholder "online-casino" eller "buy-viagra" eller "porn":

$filter = "/online-casino|buy-viagra|porn";
if(eregi($filter, $comment))
{
    //do not post
} else {
    //ok to post
}

Så tror jeg nok, jeg fik sagt hvad jeg lige havde på hjetet - hvad blog spam angår. Er der nogen derude, der har haft lignende problemer, eller har funde andre løsninger, vil jeg meget gerne høre mere om det.


Interressant at finde et dansk indlæg på google når man søger på "blog spam". Også meget dybdegående artikel du har fundet fra Six Apart. Jeg er i øjeblikket ved at udvikle min egen blog i PHP, og jeg er en smule bekymret overfor blog spam. Jeg ved ikke hvilken løsning jeg vil bruge endnu, men jeg vil helt klart bruge dit indlæg i mine overvejelser!


Hej Mads,

Jeg er gået over til Akismet Antispam. Det er samme teknik som bruges i Wordpress, og kræver dog også at du har en API-key derfra - Lad det være sagt, så har det givet utrolig gode resultater - læs evt. mere her.


Skriv en kommentar






AddThis Social Bookmark Button


aalborg add on ajax akismet algoritme analyse apache arbejde automatix backup bad gastein beryl billeder blog bot brows browser business buzz cache chat cloaking cms color schemer colorpix compiz fusion crazy eggs css css zengarden design desktop applet deviantart editor error facebook falken productions farver fckeditor feed feedburner ferie firebug firefox flash flickr fokus foto gadget galleri gettext gnome gnu goat google google maps gps gracefull degredation grafik gravatar hijax hotel htaccess html ie IM install instereo intaller internet explorer internet explorer 6.0 investering ipod it itunes java javascript karneval kunst linux live search livecd meta microsoft mobil mod_rewrite mootools mozbackup mozilla msn musik mysql news omgivelser one.com ooxml opera os php pidgin ping pipes png podcast printer programmering projekt prototype qfilm reklame reklamebureau rss screenshot script script.aculo.us seo skole songbird spam sponser standard standarder statistik strand svn test thunderbird tillykke tivoli top 10 twitter ubuntu udvikling validering video vinter vista w3c wallpaper web 2.0 web design web programmering webcrawler webserver windows wordpress xhtml xml xmlrpc xp yahoo youtube