Nützliches PHP-Drupal-Skript gegen Spamaccounts

Für die letzten Monate automatische Bots wurden hunderte von Zombie-Konten pro Tag auf dem TurnKey Website. Ich bin mir nicht sicher, warum sie sich die Mühe. Ich nehme an, es hat etwas mit Spam zu tun, aber sie nie eingeloggt Außerdem Spam fast nie an unserem Content-Filter (Mollom) und wenn es wir immer nuke es. Null Toleranz.

Hirn…

In der Zwischenzeit diese Zombie-Konten belasten meine kostbare Datenbank, und das stört mich. Außerdem rufen Sie mich voreingenommen, aber ich hasse Zombies. Sie sind entweder tot oder du bist tot.. Wähle eine Seite!

Wir konnten damit CAPTCHA aber wir lieber machen Benutzerregistrierung komplizierter nur als letzten Ausweg.

Also schrieb ich ein quick and dirty Skript, um alle 38489 Zombie-Accounts auf dem TurnKey Linux-Website zu löschen. Wie Sie unten meine Definition von einem Zombie-Benutzer sehen kann, ist eine, die nie in angemeldet ist oder der Zugriff der Website, und ist über eine Woche alt.

<?php

   error_reporting(E_ALL);
   require_once './includes/bootstrap.inc';
   drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);

   print "<pre>";

   $results = db_query("select uid, name, mail, access, created, login
                        FROM users WHERE created != 0 AND login=0 AND access=0");

   $i = 0;
   while ($result = db_fetch_object($results)) {
       print_r($result);
       $daysago = ((time() - $result->created) / (24 * 60 * 60));
       printf("created = %s, days ago = %d\n",
              date("Y-m-d", $result->created), $daysago);

       print "n";
       if($daysago < 7)
           continue;

       user_delete(NULL, $result->uid);
       $i += 1;
   }

   print "COUNT: $in";
   print "</pre>";
   ?>