Om spam og spammere

"Byg det og de vil komme" lyder et gammel ordsprog. Desværre tyder noget på, at online er det kun spam og bots, det er dækkende for.

Har du lavet en online tjeneste, vil du komme til at stifte bekendtskab med en del af internettets bagside; bots. Bots er automatiserede scripts og programmer, der drøner rundt på websider og udfylder alle de signup formularer og kommentarfelter, de kan finde.

Typisk er håbet at nogen klikker på et link eller at afsenderens Google-juice øges. Andre gange er det mere udspekuleret og bruges til spredning af politisk propagande eller Nigeria-breve.

Når det sker melder spørgsmålet sig hurtigt, hvordan undgår vi det? Desværre er det korte svar, at det gør vi ikke - det længere svar er, at der er 2 måder at angribe problemet på:

  1. Undgå spam-signups
  2. Undgå spam-indhold

Undgå spam-signups

Det mest oplagte sted at tage fat i problemet er at sørge for, at bots ikke tilmelder sig din tjeneste. Det er formentligt også det sværeste at gøre noget ved, da vi gerne vil bevare signup processen så let og simpel som mulig for rigtige brugere.

Bekræftelse af e-mail adresse

En simpel løsning, som er i brug rigtigt mange steder er at kræve, at brugeren bekræfter sin e-mail adresse før de fx kan skrive noget på sitet.

Det kan være en begrænsende oplevelse for rigtige brugere, der nu skal vente på en e-mail med risiko for at den havner i spam-mappen og klikke på et link der. Det er dog noget, som de fleste er vant til. Til gengæld betyder det også, at mange spam-scripts garanteret har automatiseret den proces allerede.

reCAPTCHA

En af de mere kendte løsninger er Googles reCAPTCHA. Du kender den sikkert godt; de der fjollede checkbokse med “I am not a robot”.

Google reCAPTCHA in action

Idéen er, at reCAPTCHA ud fra et ukendt sæt af kriterier vurderer at den nuværende bruger ikke opfører sig som et menneske, og derfor giver den en opgave, som kun mennesker kan udføre.

Nogle gange kan det være den simple checkbox, andre gange skal man fx vælge områder på et billeder, der indeholder noget bestemt, eller skrive 2 ulæselige ord.

Ulempen er så, at det risikerer man også at udsætte sine rigtige kunder for, hvilket ikke nødvendigvis er den lækre førstehåndsoplevelse, man gerne vil give dem.

Honeypots

Et muligt alternativ er at indføre en "honeypot" på signup siden. En honeypot et felt, der ikke kan ses af menneskelige brugere, men som bots udfylder alligevel.

Hvis det felt er udfyldt er der formentligt tale om en spam-bruger. Vi kan dog ikke afvise vedkommende på stedet, da det ville gøre det for tydeligt og resultere i at de omgår, men vi er nødt til at acceptere signup og evt. bare flagge brugeren.

Dette vil dog kun fange fuldt automatiske signups og der er noget, der tyder på, at nogle bots i virkeligheden er lavt-betalte mennesker, der manuelt signer op.

Clearbit Risk

En mere kompleks løsning er at bruge et risiko-vurderingsværktøj som Clearbits Risk API. Når det er implementeret betyder det grundlæggende, at hver bruger tildeles en procentsats for, hvor sandsynligt det er, at den bruger er fusk.

Det er en elegant løsning, som brugerne aldrig opdager, men det kræver at man kan lave noget arbejde på backenden. Det betyder potentielt også, at man kan være nødt til manuelt at løbe igennem de brugere, der ligger i en gråzone, hvor de ikke med sikkerhed kan afvises.

Undgå spam-indhold

At opdage og forhindre spam-indhold er umiddelbart nemmere, da der er mere indhold at hive fat i her end ved en signup. Den naive løsning er at lave indholdsanalyse efter bestemte sætning/ord, som man vurderer værende suspekte.

Det kunne gøres mere intelligent ved at bruge en tjeneste som Akismet, der har en hel del erfaring med at blokere spam-kommentarer. Risikoen er selvfølgeligt at fjerne rigtigt indhold, plus det vil næppe aldrig fjerne alt.

Derudover vil det skabe et behov for at din applikation får en moderationskø, hvor du kan se, hvad der flagges som spam og markere det som værende ikke-spam, hvis det er en falsk positiv.

Note om sletning/ban af brugere

Det er tillokkende at slette eller banne brugere, der opdages som værende spammere, så er problemet løst, ikke? Det viser sig dog at være problematisk, da de typisk vender tilbage.

Traditionalt plejer den bedste måde at håndtere misbrugere på være at "hel-banne" dem. Det vil sige, at for spambrugeren ser alt ud til at fungere; de kan logge ind, skrive og gemme deres junk indhold osv, men ingen andre end dem selv kan se deres aktivitet. Det perfekte fængsel.

Spam og misbrug kan næppe helt undgås, men man kan med få tekniske hjælpemidler mindske problemet.

Gør noget ved det nu

Tag fat i os allerede i dag, så vi kan skabe et solidt fundament for dit online produkt.