All links of one day
in a single page.
<Previous day - Next day>

rss_feedDaily RSS Feed
floral_left The Daily Shaarli floral_right
——————————— Saturday 21, December 2019 ———————————

WordPress : Spam Karma 2 ne nettoie pas ses tables dans la base de données

Afin de filtrer le spam dans les commentaires de mon blog WordPress, j'utilise l'extension « Spam Karma 2 ».

Le fonctionnement de Spam Karma 2 est de faire du scoring comme le font les antispams email : plusieurs critères (délai entre l'ouverture de la page et l'envoi d'un commentaire, nombre de liens insérés dans le contenu du commentaire, payload javascript, détection de balises HTML,...), chaque critère fait perdre des points. Si le score final est en dessous d'un certain seuil, on laisse une autre chance en proposant un captcha. En dessous d'un deuxième seuil, on ne propose même pas une deuxième chance. Spam Karma est modulaire : plusieurs plugins participent à établir le score final.

Je peux consulter les critères de blocage de chaque commentaire. Je peux débloquer les commentaires si je veux. Je peux agir sur tous les critères de classification. Et je ne participe pas à une concentration malsaine en un seul service de filtrage, comme Akismet, qui, du coup, devient hyper puissant et critique.

Le gros inconvénient est que Spam Karma est une extension vieille de plus de 10 ans qui n'est plus maintenue depuis fort longtemps. J'ai déjà rencontré des problèmes : utilisation, par WordPress, de MySQLi au lieu de MySQL et passage à PHP 7.

En cherchant tout autre chose, j'ai constaté que la table « wp_sk2_spams » de ma base de données WordPress contient l'évaluation technique des spams reçus sur mon blog depuis l'installation de Spam Karma en juillet 2010. Soit plus de 84 000 entrées dans la table.

Spam Karma est censé nettoyer sa base de données tout seul. Je l'ai configuré pour purger automatiquement les évaluations de spam plus vieilles que 30 jours.

Pour faire le ménage manuellement, c'est du classique :

$ mysql -u <identifiant> -p <nom_BDD_WordPress>
Enter password:
[…]

MariaDB [nom_BDD_WordPress]> DELETE FROM wp_sk2_spams WHERE last_mod < '2019-11-01 00:00:00';
Query OK, 82944 rows affected (3.18 sec)

MariaDB [nom_BDD_WordPress]> OPTIMIZE TABLE wp_sk2_spams;
+--------------------------------+----------+----------+----------+
| Table                          | Op       | Msg_type | Msg_text |
+--------------------------------+----------+----------+----------+
| nom_BDD_WordPress.wp_sk2_spams | optimize | status   | OK       |
+--------------------------------+----------+----------+----------+
1 row in set (0.32 sec)

MariaDB [nom_BDD_WordPress]> quit

J'effectue une sauvegarde hebdomadaire de mes bases de données avec mysqldump. Avec ce nettoyage, la taille de cette sauvegarde est passée de 267 Mo à 7,8 Mo. \o/

J'avais bien constaté l'augmentation croissante de la sauvegarde de la base de données de mon blog d'environ 1 Mo par mois alors que je n'y publie plus de contenus depuis des années et que je reçois très peu de commentaires d'origine humaine. Mais j'ai eu la flemme d'en chercher la cause. C'est désormais chose faite grâce au hasard. :D

-