De beste måtene å bekjempe spam

Spam er en av de store fallgruvene på den sosiale nettsiden. Ifølge nettsteder som Postini er 10 av 12 e-postmeldinger spam. Som om det ikke allerede var nok til å få deg til å ringe, inneholder 1 av 39 e-postmeldinger et virus. Spam penetrerer også inn i andre områder av Internett. Skaperne av bloggingprogramvaren Wordpress rapporterer at nesten 87% av alle bloggkommentarene er også spam. Da meldingsprogrammer og kommunikasjonsapplikasjoner sprer seg over hele nettet, må utviklere og nettstedseiere bli kreative i kampen mot tusenvis av uønskede meldinger som strømmer i hver dag. Å bestemme seg for den beste metoden for spamforebygging på bloggene dine, fora eller til og med kontaktskjemaer, kan være vanskelig. I denne artikkelen vil vi se på en tjeneste som heter Akismet, og hvordan den kan hjelpe. Vi vil også se på hvorfor noen andre metoder for å bekjempe spam mislykkes.

Metoder for å bekjempe spam

Tillatelse av flere påfølgende innleveringer. Spammere legger nesten alltid mer enn en SPAM-kommentar eller melding om gangen. En vanlig metode for å bekjempe spam er å logge innkommende melding med brukerens IP-adresse og en tidsstempel for innlegget. Når en bruker forsøker å legge inn flere kommentarer, kan du sjekke om brukeren har lagt ut mer enn en gang innenfor et angitt tidsrom, for eksempel 30 sekunder, eller hvis den nåværende plakaten også var den siste plakaten. Dette er ikke en kollisikkert metode fordi spammere kan bruke proxyer når de vil legge ut flere ganger, og roboter har så mye tid i verden som de vil spamse nettstedet ditt.

Søkeord svarteliste. En annen metode for å bekjempe spam er å bygge en svarteliste med vanlige nettsøppelord selv og for å avvise innlegg som inneholder ordene. I sin enkleste form kan du opprette en rekke søkeord og se om en innkommende streng inneholder dem. Spammere har utviklet seg mot denne metoden ved å legge ut variasjoner av ordene. De erstatter bokstaver med tall, symboler og andre slike tegn for å skape et bredt utvalg av søkeordvarianter.

CAPTCHA. CAPTCHA (Fullstendig Automatisert Public Turing Test) er en av de vanligste spamforebyggende teknikkene på nettet i dag. Teknikken er veldig nyttig, og nesten alle nettsteder som lar deg registrere deg for en konto eller postinformasjon, bruker offentlig CAPTCHA på en eller annen måte. CAPTCHA-tester kan være lydfiler, men er oftest bilder som presenterer en serie tegn og tall som du må skrive inn i et skjema. Teknikken er et nyttig verktøy for blokkering av roboter som forsøker å besøke nettstedet ditt for å sende spammeldinger eller opprette falske kontoer med falsk informasjon.

CAPTCHA fungerer bra for den tilsiktede bruken, men det er små ulemper. En CAPTCHA krever (enda et) felt for brukere å fylle ut etter å ha skrevet inn brukernavn, passord og sikkerhetsspørsmål. Det er forståelig nok en irritasjonsfaktor som følger med bruken av dem. I tillegg kan deaktiverte brukere kanskje ikke bruke CAPTCHA-feltet. Endelig kan menneskelige spammere også spamse nettstedet ditt, fordi en CAPTCHA bare blokkerer robotspammere.

Så hva er igjen?

Etter å ha gjennomgått noen av de nåværende metodene og deres svake punkter, kan du lure på hva annet vi kan gjøre for å beskytte våre bloggingapplikasjoner. Jeg vil gjerne introdusere et nytt spam-kampverktøy fra skaperne av WordPress. Tjenesten heter Akismet og beskrives av skaperne som en "... samarbeidsprosess for å gjøre kommentar og sporingsspam til et ikke-problem og gjenopprette uskyld til blogging, så du trenger aldri å bekymre deg for spam igjen."

Verktøyet kan implementeres i et hvilket som helst prosjekt så lenge du har en API-nøkkel, som kan brukes gratis for ikke-kommersiell bruk eller kjøpt til kommersiell bruk for så lite som $ 5 i måneden. Det finnes flere Akismet plugins for eksisterende programvare, og disse identifiseres senere i denne artikkelen. Alternativt kan du inkludere tjenesten i dine egne prosjekter som vi vil demonstrere.

Implementere Akismet i dine egne prosjekter

Fra nå er den eneste måten å motta en API-nøkkel, å registrere seg for en gratis WordPress.com-brukerkonto. Slå nettleserne dine til http://wordpress.com/signup/ og fyll ut de vanlige obligatoriske feltene: brukernavn, passord og e-post som vist nedenfor, og les deretter og godta vilkårene for serviceavtalen. Pass på at du registrerer deg for en blogg, da du ikke kan motta en API-nøkkel uten registrering. Ikke bekymre deg for denne detalj, fordi API-nøkkelen ikke vil være knyttet til en bestemt blogg. Når du er ferdig med registreringsprosessen, bør du motta en epost med den nye API-nøkkelen.

Du må nå laste ned og pakke ut PHP5Akismet.0.4.zip (24K) fra Achingbrain. Last opp den enkle php-filen til et område som er tilgjengelig ved hjelp av skriptene dine. De andre filene og dokumentasjonen er bare for referanse.

Vi antar at du jobber med et eksisterende prosjekt. Dette kan være alt som tillater brukerbidrag som et forum eller en blogg. Vi vil også anta at logikken for å opprette og vise innhold allerede eksisterer. Med det for øye er vårt første skritt å laste filen inn i vårt eget prosjekt.

 inkludere "bane / til / fil / Akismet.class.php";

Deretter må vi opprette en ny forekomst av Akismet-klassen. Ved hjelp av klassekonstruktøren kan vi passere vår API-nøkkel og nettadressen til nettstedet ved å bruke den. Pass på at du erstatter følgende data med din egen.

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

Nå har tjenesten behov for de faktiske kommentardataene vi vil sjekke. I det følgende tilfeller bruker jeg noen eksempler på data, men i produksjonen vil kommentarinformasjonen hende fra POST-data. Akismet-tjenesten vil da sammenligne kommentarinformasjonen til en database med mer enn 7.486.928.953 spam-kommentarer og returnere et resultat hvis det sendte innlegget er blitt identifisert som en spam-kommentar.

 $ akismet-> setCommentAuthor ("Justin Shreve"); $ Akismet-> setCommentAuthorEmail ( "[email protected]"); $ Akismet-> setCommentAuthorURL ( "http://serenelabs.com"); $ Akismet-> setCommentType ( "forum"); $ akismet-> setCommentContent ("Jeg er virkelig enig med det du sier! Jeg kan ikke tro at jeg aldri trodde det før!");

Funksjonene som presenteres her er ganske enkle. Den eneste funksjonen som krever ytterligere forklaring er funksjonen setCommentType. Dette brukes av Akismet for å hjelpe tjenesten å identifisere opprinnelsen til kommentaren (ble den lagt ut på en offentlig nyhetsgruppe, forum eller blogg?), Og du kan overføre ethvert argument du vil ha. Hvis du for eksempel bruker funksjonen til å spam-proof en wiki, bruker du wiki som typen. Hvis du beskytter en blogg, bruk deretter en bloggtype.

Nå skal vi bruke en funksjon som heter isCommentSpam. Dette er funksjonen som faktisk kontakter tjenesten. Den boolske funksjonen kommer tilbake sant hvis kommentaren er identifisert som spam og falsk hvis kommentaren er verifisert som legitim.

 hvis ($ akismet-> isCommentSpam ()) // Her kan vi lagre logikk for å håndtere spam-kommentarer. // Vanligvis kan vi lagre kommentaren internt for senere referanse, bare hvis tjenesten gjør en feil.  else // Det er her du vil sette inn innholdet i databasen. 

Å bruke Akismet er like enkelt som disse få kodelinjene! Du har nå integrert en spam-bekjempelsestjeneste på nettstedet ditt. Tjenesten kan brukes sammen med andre former for spamforsvar som nevnt tidligere. Husk at Akismet er en tjeneste som vokser hver gang du bruker den, fordi funksjonene bidrar med spaminnholdet til databasen. Det kan være gyldige meldinger noen ganger identifisert som spam og omvendt. Som et resultat kan vi kanskje integrere litt mer funksjonalitet for å håndtere potensiell feilidentifikasjon.

Hvis en melding er feilidentifisert som SPAM, kan du varsle Akismet, og de vil håndtere det tilsvarende. Alternativt kan du merke en kommentar som SPAM hvis det skjedde å falle gjennom Akismet filteret. Når du implementerer følgende funksjonalitet, må du kontrollere at kommentardataene i variablene er satt i samme format som ovenfor.

Funksjonen

 $ Akismet-> submitHam ();

kan brukes til å varsle tjenesten om at kommentaren de rapporterte som spam er faktisk ok.

Mens funksjonen

 $ Akismet-> submitSpam ();

kan brukes til å varsle tjenesten om at en kommentar som ble godkjent, faktisk er et stykke spam.

Andre biblioteker

PHP5 er ikke for alle. Akismet-bibliotekene har også blitt opprettet på en rekke andre språk. Nedenfor er noen av de mest populære:

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

Alle disse kan enkelt integreres i prosjektene dine på samme måte som beskrevet ovenfor.

Populære implementeringer

Ikke føler behovet for å rulle din egen programvare, men vil fortsatt bruke Akismet? Mange løsninger eksisterer allerede for blogg, CMS eller forum programvare:

  • Invision Power Board
  • phpBB
  • Drupal
  • vBulletin
  • Uttrykksmotor
  • og selvfølgelig WordPress som standard!

Lukking

Jeg håper at denne veiledningen vil tjene som en introduksjon til noen alternative former for spam-kamp. Et nettsted uten SPAM vises ikke bare mer profesjonelt for brukere, men er også mye lettere å administrere for administratorer og moderatorer.