De beste manieren om spam te bestrijden

Spam is een van de grootste valkuilen van het sociale web. Volgens sites zoals Postini zijn 10 van de 12 e-mailberichten spam. Alsof dat nog niet genoeg was om je te doen instorten, bevatten 1 op de 39 e-mails een virus. Spam dringt ook door in andere delen van het internet. De makers van de blogsoftware Wordpress melden dat bijna 87% van alle blogcommentaren ook spam is. Omdat berichten- en communicatietoepassingen zich op het web verspreiden, moeten ontwikkelaars en site-eigenaren creatief zijn in de strijd tegen de duizenden en duizenden ongewenste berichten die elke dag worden gestreamd. Beslissen over de beste methode voor spampreventie op uw blogs, forums of zelfs contactformulieren kan moeilijk zijn. In dit artikel zullen we een kijkje nemen naar een dienst genaamd Akismet en hoe deze kan helpen. We zullen ook bekijken waarom sommige andere methoden om spam te bestrijden mislukken.

Methoden voor het bestrijden van spam

Niet toestaan ​​van meerdere opeenvolgende inzendingen. Spammers plaatsen bijna altijd meer dan één SPAM-opmerking of -bericht tegelijk. Een veelgebruikte methode om spam tegen te gaan is het loggen van het binnenkomende bericht met het IP-adres van de gebruiker en een tijdstempel van de post. Wanneer een gebruiker vervolgens meerdere opmerkingen probeert te plaatsen, kunt u controleren of de gebruiker meer dan eens heeft gepost binnen een bepaald venster van de tijd, bijvoorbeeld 30 seconden, of dat de huidige poster ook de laatste poster was. Dit is geen kogelvrije methode omdat spammers proxy's kunnen gebruiken wanneer ze meerdere keren willen posten, en robots evenveel tijd in de wereld hebben als zij uw site willen spammen.

Zoekwoord Zwarte lijst. Een andere manier om spam te bestrijden is door zelf een zwarte lijst met veelgebruikte spam-zoekwoorden te maken en berichten met de woorden te weigeren. In de meest eenvoudige vorm kunt u een reeks trefwoorden maken en controleren of een inkomende reeks deze bevat. Spammers hebben een verdediging tegen deze methode ontwikkeld door variaties op de woorden te plaatsen. Ze vervangen letters met getallen, symbolen en andere dergelijke tekens om een ​​brede selectie van zoekwoordvarianten te maken.

CAPTCHA. CAPTCHA (Fully Automated Public Turing Test) is vandaag een van de meest voorkomende technieken voor spampreventie op het web. De techniek is erg handig en bijna elke site waarmee je je kunt registreren voor een account of post-informatie maakt op de een of andere manier in het openbaar gebruik van CAPTCHA. CAPTCHA-tests kunnen audiobestanden zijn, maar zijn meestal afbeeldingen met een reeks tekens en cijfers die u in een formulier moet invoeren. De techniek is een handig hulpmiddel voor het blokkeren van robots die proberen uw site te bezoeken om spamberichten te posten of valse accounts met valse informatie te maken.

CAPTCHA werkt goed voor het beoogde gebruik, maar er zijn kleine nadelen. Een CAPTCHA vereist (nog een) veld voor gebruikers om in te vullen na het invoeren van gebruikersnamen, wachtwoorden en beveiligingsvragen. Er is begrijpelijkerwijs een hinderfactor bij hun gebruik. Bovendien kunnen uitgeschakelde gebruikers het CAPTCHA-veld mogelijk niet gebruiken. Ten slotte kunnen menselijke spammers uw site nog steeds spammen omdat een CAPTCHA alleen robot-spammers uitsluit.

Dus wat er nog over is?

Nadat u enkele van de huidige methoden en hun zwakke punten hebt beoordeeld, vraagt ​​u zich wellicht af wat we nog meer kunnen doen om onze blogtoepassingen te beschermen. Ik zou graag een nieuwe tool voor het bestrijden van spam van de makers van WordPress introduceren. De service heet Akismet en wordt door de makers beschreven als een "... gezamenlijke inspanning om commentaar en trackback-spam een ​​non-issue te maken en de onschuld te herstellen voor bloggen, zodat je je nooit meer zorgen hoeft te maken over spam."

De tool kan in elk project worden geïmplementeerd zolang u een API-sleutel hebt, die gratis kan worden gebruikt voor niet-commercieel gebruik of die voor commercieel gebruik is gekocht voor slechts $ 5 per maand. Er zijn verschillende Akismet-plug-ins voor bestaande software en deze worden later in dit artikel geïdentificeerd. Als alternatief kunt u de service opnemen in uw eigen projecten, zoals we zullen aantonen.

Akismet implementeren in uw eigen projecten

Vanaf nu is de enige manier om een ​​API-sleutel te ontvangen, om je aan te melden voor een gratis WordPress.com-gebruikersaccount. Verander uw browsers in de richting van http://wordpress.com/signup/ en vul de normaal vereiste velden in: gebruikersnaam, wachtwoord en e-mail zoals hieronder weergegeven en lees en ga akkoord met de gebruiksvoorwaardenovereenkomst. Zorg ervoor dat u zich registreert voor een blog omdat u geen API-sleutel kunt ontvangen zonder de registratie. Maak je geen zorgen over dit detail, omdat de API-sleutel niet aan een specifieke blog is gekoppeld. Zodra u het registratieproces hebt voltooid, ontvangt u een e-mail met uw nieuwe API-sleutel.

U moet nu PHP5Akismet.0.4.zip (24K) van Achingbrain downloaden en unzippen. Upload het enkele php-bestand naar een gebied dat toegankelijk is voor uw scripts. De andere bestanden en documentatie zijn alleen voor referentie.

We gaan ervan uit dat je met een bestaand project werkt. Dit kan alles zijn dat bijdragen van gebruikers toestaat, zoals een forum of blog. We gaan er ook van uit dat de logica voor het maken en weergeven van inhoud al bestaat. Met dat in gedachten is onze eerste stap om het bestand in ons eigen project te laden.

 include "path / to / file / Akismet.class.php";

Vervolgens moeten we een nieuw exemplaar van de klasse Akismet maken. Met behulp van de klassenconstructor kunnen we onze API-sleutel en de URL van de site die deze gebruikt gebruiken. Zorg ervoor dat u de volgende gegevens vervangt door die van uzelf.

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

Nu heeft de service de feitelijke reactiegegevens nodig die we willen controleren. In het volgende voorbeeld gebruik ik enkele voorbeeldgegevens, maar in productie zou de commentaarinformatie afkomstig zijn van POST-gegevens. De Akismet-service vergelijkt vervolgens de commentaarinformatie met een database van meer dan 7,486,928,953 spamcommentaren en retourneert een resultaat als de ingediende post is geïdentificeerd als een spamcommentaar.

 $ akismet-> setCommentAuthor ("Justin Shreve"); $ Akismet-> setCommentAuthorEmail ( "[email protected]"); $ Akismet-> setCommentAuthorURL ( "http://serenelabs.com"); $ Akismet-> setCommentType ( "forums"); $ akismet-> setCommentContent ("Ik ben het echt eens met wat je zegt! Ik kan niet geloven dat ik daar nog nooit aan heb gedacht!");

De hier gepresenteerde functies zijn vrij eenvoudig. De enige functie die enige verdere uitleg behoeft, is de functie setCommentType. Dit wordt door Akismet gebruikt om de service te helpen bij het identificeren van de oorsprong van de opmerking (is deze geplaatst op een openbare nieuwsgroep, forum of blog?) En u kunt elk gewenst argument doorgeven. Als u bijvoorbeeld de functie gebruikt om een ​​wiki tegen spam te beveiligen, gebruikt u wiki als het type. Als u een blog beveiligt, gebruik dan een blogtype.

Nu zullen we een functie gebruiken genaamd isCommentSpam. Dit is de functie die daadwerkelijk contact maakt met de service. De booleaanse functie retourneert true als de reactie wordt geïdentificeerd als spam en false als de opmerking als legitiem wordt geverifieerd.

 if ($ akismet-> isCommentSpam ()) // Hier kunnen we logica opslaan om spam-opmerkingen te verwerken. // Meestal kunnen we de opmerking intern opslaan voor latere referentie, voor het geval dat de service een fout maakt.  else // Hier plaatst u de inhoud in de database. 

Het gebruik van Akismet is net zo eenvoudig als deze paar regels code! U hebt nu een dienst voor spambestrijding geïntegreerd in uw site. De service kan worden gebruikt in combinatie met de eerder genoemde andere vormen van spamverdediging. Houd er rekening mee dat Akismet een service is die elke keer dat u deze gebruikt, groeit, omdat de functies uw spaminhoud aan de database bijdragen. Er kunnen geldige berichten zijn die soms worden geïdentificeerd als spam en omgekeerd. Als gevolg hiervan willen we misschien wat meer functionaliteit integreren om mogelijke misidentificatie aan te pakken.

Als een bericht ten onrechte als SPAM wordt geïdentificeerd, kunt u Akismet hiervan op de hoogte stellen en zullen zij dienovereenkomstig handelen. Als alternatief kunt u een opmerking markeren als SPAM als deze toevallig door het Akismet-filter valt. Wanneer u de volgende functionaliteit implementeert, moet u ervoor zorgen dat de reactiegegevens in de variabelen in hetzelfde formaat als hierboven zijn ingesteld.

De functie

 $ Akismet-> submitHam ();

kan worden gebruikt om de service te melden dat de reactie die zij als spam hebben gerapporteerd, in orde is.

Terwijl de functie

 $ Akismet-> submitSpam ();

kan worden gebruikt om de service te melden dat een opmerking die is goedgekeurd, daadwerkelijk een spambericht is.

Andere bibliotheken

PHP5 is niet voor iedereen. Akismet-bibliotheken zijn ook gemaakt in een reeks andere talen. Hieronder zijn enkele van de meest populaire:

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

Al deze kunnen eenvoudig op dezelfde manier in uw projecten worden geïntegreerd als hierboven beschreven.

Populaire implementaties

Voel je niet de behoefte om je eigen software te rollen, maar wil je toch Akismet gebruiken? Er bestaan ​​al veel oplossingen voor blogs, CMS of forumsoftware:

  • Invision Power Board
  • phpBB
  • Drupal
  • vBulletin
  • Expression Engine
  • en natuurlijk WordPress standaard!

Sluitend

Ik hoop dat deze gids zal dienen als introductie in enkele alternatieve vormen van spam-bestrijding. Een site zonder SPAM lijkt niet alleen professioneler voor gebruikers, maar is ook veel gemakkelijker te beheren voor beheerders en moderators.