De bästa sätten att bekämpa spam

Spam är en av de stora fallgroparna på den sociala webben. Enligt webbplatser som Postini är 10 av 12 e-postmeddelanden skräppost. Som om det inte redan var tillräckligt för att få dig att ringa, innehåller 1 av 39 e-postmeddelanden ett virus. Spam tränger in i andra delar av Internet också. Skaparna av bloggprogrammet Wordpress rapporterar att nästan 87% av alla bloggkommentarer också är spam. Eftersom meddelandeprogram och kommunikationsapplikationer växer över hela webben måste utvecklare och webbplatsägare bli kreativa i kampen mot de tusentals tusentals oönskade meddelanden som strömmar i varje dag. Att bestämma om den bästa metoden för att förebygga skräppost på dina bloggar, forum, eller till och med kontaktformulär kan vara svårt. I den här artikeln kommer vi att titta på en tjänst som heter Akismet och hur det kan hjälpa till. Vi kommer också att titta på varför några andra metoder för att bekämpa spam misslyckas.

Metoder för att bekämpa spam

Tillåter flera på varandra följande inlagor. Spammare postar nästan alltid mer än en SPAM-kommentar eller ett meddelande åt gången. En vanlig metod för att bekämpa spam är att logga in det inkommande meddelandet med användarens IP-adress och en tidstämpel för posten. När en användare försöker skriva in flera kommentarer kan du kontrollera om användaren har lagt upp mer än en gång inom ett visst tidsfönster, till exempel 30 sekunder, eller om den aktuella affischen också var den sista affischen. Detta är inte en kollisionssäker metod eftersom spammare kan använda proxy när de vill lägga upp flera gånger och robotar har så mycket tid i världen som de vill skräpposta din webbplats.

Nyckelord Blacklist. En annan metod för att bekämpa skräppost är att själv skapa en svart lista med vanliga skräppostsord och avvisa inlägg som innehåller orden. I sin enklaste form kan du skapa en rad nyckelord och kontrollera om en inkommande sträng innehåller dem. Spammare har utvecklat försvar mot denna metod genom att lägga in variationer av orden. De ersätter bokstäver med siffror, symboler och andra sådana tecken för att skapa ett brett urval av sökordsvarianter.

CAPTCHA. CAPTCHA (helt automatiserat Public Turing Test) är en av de vanligaste metoderna för att förebygga spam på webben idag. Tekniken är väldigt användbar, och nästan alla webbplatser som tillåter dig att registrera dig för ett konto eller postinformation använder offentligt CAPTCHA på ett eller annat sätt. CAPTCHA-tester kan vara ljudfiler, men är vanligare bilder som presenterar en serie tecken och siffror som du måste skriva in i en blankett. Tekniken är ett användbart verktyg för att blockera robotar som försöker besöka din webbplats för att skicka spammeddelanden eller skapa falska konton med falsk information.

CAPTCHA fungerar bra för den avsedda användningen, men det finns mindre nackdelar. En CAPTCHA kräver (ännu ett) fält för användarna att fylla i efter användarnamn, lösenord och säkerhetsfrågor. Det finns förstås en störningsfaktor som åtföljer deras användning. Dessutom kan funktionshindrade användare kanske inte använda CAPTCHA-fältet. Slutligen kan mänskliga spammare fortfarande spamma din webbplats eftersom en CAPTCHA bara blockerar robotarspammare.

Så vad är vänster?

Efter att ha granskat några av de nuvarande metoderna och deras svaga punkter kanske du undrar vad vi kan göra för att skydda våra bloggapplikationer. Jag skulle vilja presentera ett nytt spam-stridsverktyg från skaparna av WordPress. Tjänsten heter Akismet och beskrivs av dess skapare som en "... samarbetsinsats för att göra kommentar och trackback-spam till ett icke-problem och återställa oskuld till bloggar, så du behöver aldrig oroa dig för spam igen."

Verktyget kan implementeras i alla projekt så länge du har en API-nyckel, som kan användas gratis för icke-kommersiell användning eller köpts för kommersiell användning för så lite som $ 5 per månad. Det finns flera Akismet-plugins för befintlig programvara, och dessa identifieras senare i den här artikeln. Alternativt kan du inkludera tjänsten i dina egna projekt som vi kommer att demonstrera.

Genomföra Akismet i dina egna projekt

Från och med nu är det enda sättet att få en API-nyckel att anmäla sig till ett gratis WordPress.com-användarkonto. Vänd dina webbläsare till http://wordpress.com/signup/ och fyll i de vanliga erforderliga fälten: användarnamn, lösenord och e-post enligt nedan och läs sedan och godkänn användaravtalet. Se till att du registrerar dig för en blogg eftersom du inte kan få en API-nyckel utan registrering. Oroa dig inte för denna detalj, eftersom API-nyckeln inte kommer att vara knuten till en specifik blogg. När du är klar med registreringsprocessen ska du få ett mail med din nya API-nyckel.

Du måste nu ladda ner och pakka ut PHP5Akismet.0.4.zip (24K) från Achingbrain. Ladda upp den enkla php-filen till ett område som är tillgängligt med dina skript. De övriga filerna och dokumentationen är bara för referens.

Vi antar att du arbetar med ett befintligt projekt. Det kan vara allt som tillåter användarbidrag som ett forum eller en blogg. Vi antar också att logiken för att skapa och visa innehåll redan existerar. Med det i åtanke är vårt första steg att ladda filen in i vårt eget projekt.

 inkludera "sökväg / till / fil / Akismet.class.php";

Nästa måste vi skapa en ny instans av Akismet-klassen. Med hjälp av klasskonstruktorn kan vi skicka vår API-nyckel och webbadressen till webbplatsen med den. Se till att du ersätter följande data med din egen.

 $ akismet = ny Akismet ("http://myblog.com", "API KEY HERE");

Nu behöver tjänsten de faktiska kommentardata som vi vill kolla. I följande fall använder jag några exempeldata, men i produktionen kommer kommentarsinformationen att härledas från POST-data. Akismet-tjänsten kommer sedan att jämföra kommentarinformationen till en databas med mer än 7.486.928.953 skräppostkommentarer och returnera ett resultat om det inlämnade inlägget har identifierats som en skräppostkommentation.

 $ akismet-> setCommentAuthor ("Justin Shreve"); $ Akismet-> setCommentAuthorEmail ( "[email protected]"); $ Akismet-> setCommentAuthorURL ( "http://serenelabs.com"); $ Akismet-> setCommentType ( "forum"); $ akismet-> setCommentContent ("Jag håller verkligen med vad du säger! Jag kan inte tro att jag aldrig tänkt på det förut!");

Funktionerna som presenteras här är ganska enkla. Den enda funktionen som kräver ytterligare förklaring är funktionen setCommentType. Detta används av Akismet för att hjälpa tjänsten att identifiera ursprunget för kommentaren (om den publicerades på en offentlig nyhetsgrupp, forum eller blogg?), Och du kan överföra alla argument du vill ha. Om du till exempel använder funktionen för att skräpposta en wiki, använd sedan wiki som typ. Om du skyddar en blogg, använd sedan en bloggtyp.

Nu ska vi använda en funktion som heter isCommentSpam. Det här är den funktion som faktiskt kontaktar tjänsten. Den booleska funktionen kommer att returneras sant om kommentaren identifieras som spam och falskt om kommentaren är verifierad som legitim.

 om ($ akismet-> isCommentSpam ()) // Här kan vi lagra logik för att hantera spam kommentarer. // Vanligtvis kan vi lagra kommentaren internt för senare referens bara om tjänsten gör ett misstag.  else // Det är här du skulle infoga innehållet i databasen. 

Att använda Akismet är lika enkelt som dessa få rader kod! Du har nu integrerat en skräpposttjänst på din webbplats. Tjänsten kan användas tillsammans med andra former av spamförsvar som nämns tidigare. Tänk på att Akismet är en tjänst som växer varje gång du använder den, eftersom funktionerna bidrar med ditt spaminnehåll till databasen. Det kan finnas giltiga meddelanden som ibland identifieras som skräppost och vice versa. Som ett resultat kanske vi vill integrera lite mer funktionalitet för att hantera potentiell felidentifiering.

Om ett meddelande är felaktigt identifierat som SPAM, kan du meddela Akismet, och de kommer att hantera det i enlighet med detta. Alternativt kan du markera en kommentar som SPAM om det råkar falla genom Akismet-filtret. När du implementerar följande funktionalitet, se till att kommentardata i variablerna är inställda i samma format som ovan.

Funktionen

 $ Akismet-> submitHam ();

kan användas för att meddela tjänsten att den kommentar de rapporterade som spam är faktiskt ok.

Medan funktionen

 $ Akismet-> submitSpam ();

kan användas för att meddela tjänsten att en kommentar som godkändes faktiskt är en del spam.

Andra bibliotek

PHP5 är inte för alla. Akismet-bibliotek har också skapats på en rad andra språk. Nedan är några av de mest populära:

  • Pytonorm
  • PHP4
  • Ruby on Rails
  • .NET 2.0

Alla dessa kan enkelt integreras i dina projekt på ungefär samma sätt som beskrivits ovan.

Populära implementeringar

Känner du inte behovet av att rulla din egen programvara men vill ändå använda Akismet? Många lösningar finns redan för blogg, CMS eller forumprogramvara:

  • Invision Power Board
  • phpBB
  • Drupal
  • vBulletin
  • Expression Engine
  • och naturligtvis WordPress som standard!

Stängning

Jag hoppas att den här guiden kommer att fungera som en introduktion till några alternativa former av spambekämpning. En webbplats utan SPAM visas inte bara mer professionell för användarna, men är också mycket lättare att hantera för administratörer och moderatorer.