Eerste spam!

Vandaag werd ik tijdens mijn ontbijt verrast door niet één, maar twee mailtjes die rond 3 à 4 uur 's nachts waren gestuurd: het waren automatische berichten: "Iemand heeft een reactie geplaatst!"

Benieuwd wat voor interessant dialoog er om middernacht plaatst zou hebben gevonden op mijn site, opende ik de post. Het waren twee identieke berichten, verstuurd met 39 minuten tussentijd.

De comments in kwestie

Het was spam! Waarom je antibiotica zonder recept zou willen halen van een shady website weet ik niet, maar blijkbaar is het dusdanig belangrijk dat het twee keer gezegd moest worden. Het ip adres van de spammer: 5.248.225.86.

Ik heb de comments uiteraard verwijderd. Daarnaast heb ik mijn anti-spam systeem wat opgekrikt. Voorheen keek het alleen maar naar een zogenaamde "honeypot", een ding wat bots wel invullen als ze een comment plaatsen, maar mensen helemaal niet zien (en dus ook niet invullen). Dat was het idee tenminste. Ik heb nu nog een honeypot toegevoegd, en de naam van het input veld veranderd waar de echte comment wordt ingevoerd. Daarnaast ben ik een blacklist begonnen van ip-adressen van spammers. En dáárnaast worden comments nu ook op links gescand. Als een comment één of meer van deze drie tests faalt, wordt hij wel opgeslagen in de database, maar zal ik hem handmatig goedkeuren (of weggooien).

//$testc = de comment (voorbewerkt)
//body en comment zijn neppe velden die mensen niet zien, maar bots wel invullen.

// Onschuldig tot het tegendeel bewezen is
$approved = true;

if (!empty($_POST["body"]) || 
    !empty($_POST["comment"]) ||
    mb_strpos($testc, "www") !== false ||
    mb_strpos($testc, "href") !== false ||
    mb_strpos($testc, "http") !== false ||
    in_array($ip, $blacklist)
   )
{
    // een of meer tests gefaald
    $approved = false;
    echo("<p class='error'>Comment gemarkeerd als spam. Wacht op handmatige goedkeuring.</p>");
}

2019-06-26 in blog #PHP #spam #comments