Dotclear 1, Free et SPAM - Réparations

Vous avez un blog Dotclear 1 chez Free et malheureusement le SPAM a envahit une ou plusieurs de vos tables de votre base de données avant que vous ayez eu le temps de les supprimer. Résultat, votre blog vous inonde d'injures à chaque fois que vous affichez un billet. Si vous êtes dans ce cas voilà en quelques étapes le moyen de réparer votre installation.

Ne soyez pas effrayé par la longueur de ce qui suit. Prenez votre temps, lisez tranquillement, avancez pas à pas — posez des questions ici ou sur le forum si besoin au fur et à mesure — et vous vous rendrez compte que ce qu'il y a à faire est plus facile qu'il n'y parait.

Pourquoi les messages d'erreurs ?

Tout d'abord pourquoi avez-vous des messages d'erreurs à l'affichage ? Et bien parce que le ou les responsables des Pages Perso de chez Free ont renommé une ou plusieurs de vos tables — dans le meilleur des cas — ou bien ont supprimé une ou plusieurs de vos tables. En effet, depuis quelques mois ils scannent régulièrement le contenu des tables des bases de données à la recherche de SPAM. Leurs seules présences dans la base de données suffit à déclencher une sanction, y compris dans le cas où les SPAM en question ne seraient pas affichés publiquement sur votre blog et y compris dans le cas où il seraient en attente d'une décision de modération ou de filtrage de votre part !

Quelles sont les tables ciblées ?

Quelles sont les tables en question ? À priori toutes, mais principalement[1] la table dc_comment qui contient les commentaires et les rétroliens publiés sur votre blog et éventuellement la table dc_spamplemousse si le plugin Spamplemousse est installé chez vous et la table dc_galComment si le plugin Gallery est installé[2].

Réparer son installation

Dans l'ordre, effectuez les étapes suivantes :

Fermer commentaires et rétroliens

La première chose à faire est de fermer les commentaires et les rétroliens sur votre blog. Pour cela, il suffit de sélectionner le choix non pour les options Permettre les commentaires et Permettre les trackbacks, onglet Outils, option Configuration de DotClear, puis de valider en cliquant sur le bouton Enregistrer (en bas de la page).

Déterminer l'étendue des dégâts

Pour cela il va falloir déterminer quelles sont les tables mises en causes et éventuellement vérifier les plugins déjà installés. Commençons par les plugins. Cliquez si nécessaire sur l'onglet Outils et vérifiez la présence des plugins nommés Gallery, SpamClear et Spamplemousse. La réparation va dépendre de leur présence ou de leur absence.

Pour les tables, connectez-vous à l'outil de gestion de votre base de donnée en utilisant cette adresse : http://sql.free.fr/phpMyAdmin/. Vous devrez indiquer votre login et mot de passe pour y accéder.[3]

Une fois connecté vous devriez avoir à l'écran (côté gauche), la liste des tables présentes dans votre base de données. Cherchez une table commençant par dc_comment, une autre commençant par dc_spamplemousse si le plugin Spamplemousse est installé et enfin une commençant par dc_galComment si le plugin Gallery est également installé. Trois cas de figure peuvent se présenter :

  1. Vous trouvez la table dc_comment telle quelle. Dans ce cas, il ne s'agit pas d'un problème causé par une intervention liée à du SPAM chez vous. Il va falloir chercher ailleurs la raison de votre soucis.
  2. Vous trouvez une table dc_comment_SPAM (par exemple, le nom peut varier). Par conséquent, vous avez été victime d'une sanction douce et il va falloir la nettoyer un peu des SPAM présents puis la renommer.[4]
  3. Vous ne trouvez aucune table commençant par dc_comment. Dans ce cas, vous avez eu droit à la sanction dure, c'est à dire suppression sans avertissement et il va falloir recréer cette table.[5]

Faites la même recherche pour la table dc_spamplemousse et pour la table dc_galComment si les plugins correspondants sont installés chez vous.

Retrouver les tables idoines

Voyons maintenant comment retrouver les tables nécessaires pour retrouver le fonctionnement normal de votre blog.[6]

Sanction douce

Vous avez été victime de la sanction douce, c'est-à-dire un simple changement de nom de table. Dans ce cas, il faut remettre le nom original des tables, soit dc_comment, dc_spamplemousse (si le plugin Spamplemousse est installé) et dc_galComment (si le plugin Gallery est installé).

Pour renommer une table, toujours à l'aide de phpMyAdmin, l'outil de gestion de base fourni par Free, cliquez sur la table dans la colonne de gauche. Vous obtenez alors la structure de la table dans la partie droite, surmontée d'une série d'onglets. Cliquez sur l'onglet Opérations. Dans le cadre intitulé Options pour cette table, changez le nom de la table pour retrouver son nom original (voir plus haut) et cliquez sur le bouton Exécuter.

Répétez l'opération pour toutes les tables identifiées comme ayant été objet de la sanction.

Puis, avec l'interface d'administration de Dotclear[7] prenez le temps de supprimer soigneusement tous les SPAM qui polluent vos tables.

Rendez-vous ensuite au chapitre intitulé « Se protéger et éviter la sanction » un peu plus bas.

Sanction dure

Vous avez été victime de la sanction dure, c'est-à-dire que la ou les tables ont été supprimées. Dans ce cas il va falloir les recréer. Pour cela vous allez utiliser phpMyAdmin, l'outil de gestion de base fourni par Free. Cliquez sur n'importe quelle table listée dans la colonne de gauche, puis sur l'onglet SQL (normalement le 2ème) qui s'affiche.

Attention, dans les codes SQL qui suivent, remplacez éventuellement le dc_ dans le nom des tables (première ligne des codes) si vous utilisez un autre préfixe pour votre blog.

Si vous n'avez pas le plugin SpamClear installé chez vous, copiez le code ci-dessous et collez-le dans le champ affiché sous l'intitulé Exécuter une ou des requêtes sur la base… de phpMyAdmin :

CREATE TABLE `dc_comment` (
 `comment_id` int(11) NOT NULL auto_increment,
 `post_id` int(11) NOT NULL default '0',
 `comment_dt` datetime default NULL,
 `comment_upddt` datetime default NULL,
 `comment_auteur` varchar(255) default NULL,
 `comment_email` varchar(255) default NULL,
 `comment_site` varchar(255) default NULL,
 `comment_content` longtext,
 `comment_ip` varchar(15) default NULL,
 `comment_pub` int(1) default '0',
 `comment_trackback` int(1) NOT NULL default '0',
 PRIMARY KEY  (`comment_id`),
 KEY `fk_comment_post` (`post_id`)
);

Si au contraire vous avez le plugin SpamClear installé, utilisez alors le code suivant :

CREATE TABLE `dc_comment` (
 `comment_id` int(11) NOT NULL auto_increment,
 `post_id` int(11) NOT NULL default '0',
 `comment_dt` datetime default NULL,
 `comment_upddt` datetime default NULL,
 `comment_auteur` varchar(255) default NULL,
 `comment_email` varchar(255) default NULL,
 `comment_site` varchar(255) default NULL,
 `comment_content` longtext,
 `comment_ip` varchar(15) default NULL,
 `comment_pub` int(1) default '0',
 `comment_trackback` int(1) NOT NULL default '0',
 `spam` int(1) NOT NULL default '0',
 `trained` int(1) NOT NULL default '0',
 PRIMARY KEY  (`comment_id`),
 KEY `fk_comment_post` (`post_id`)
);

Puis cliquez sur le bouton Exécuter pour créer la table des commentaires et rétroliens des billets.

Si vous avez le plugin Spamplemousse installé chez vous, copiez et collez le code ci-dessous pour créer la table tampon du plugin :

CREATE TABLE `dc_spamplemousse` (
 `comment_id` int(11) NOT NULL auto_increment,
 `post_id` int(11) NOT NULL default '0',
 `comment_dt` datetime default NULL,
 `comment_upddt` datetime default NULL,
 `comment_auteur` varchar(255) default NULL,
 `comment_email` varchar(255) default NULL,
 `comment_site` varchar(255) default NULL,
 `comment_content` longtext,
 `comment_ip` varchar(15) default NULL,
 `comment_pub` int(1) default '0',
 `comment_trackback` int(1) NOT NULL default '0',
 `comment_spamraison` varchar(255) default '',
 PRIMARY KEY  (`comment_id`),
 KEY `fk_comment_post` (`post_id`)
);

Puis cliquez sur le bouton Exécuter pour créer la table.

Enfin, si vous avez le plugin Gallery installé chez vous, copiez et collez le code suivant pour créer la table des commentaires des galeries :

CREATE TABLE IF NOT EXISTS `dc_galComment` (
 `comment_id` int(11) NOT NULL auto_increment,
 `img_id` int(11) NOT NULL default '0',
 `comment_dt` datetime default NULL,
 `comment_auteur` varchar(255) default NULL,
 `comment_email` varchar(255) default NULL,
 `comment_site` varchar(255) default NULL,
 `comment_content` longtext,
 `comment_ip` varchar(15) default NULL,
 `comment_pub` int(1) default '1',
 `comment_upddt` datetime default NULL,
 PRIMARY KEY  (`comment_id`)
);

Puis cliquez sur le bouton Exécuter pour créer la table.

Vous voilà de nouveau avec les tables nécessaires au bon fonctionnement de votre blog.[8]

Se protéger et éviter la sanction

Pour éviter de se retrouver dans la même situation dans quelques temps, je vous encourage à lire et à appliquer ce que j'explique dans ces billets :

C'est (presque) fini

Il ne vous reste plus qu'à ouvrir les commentaires et les rétroliens. Pour cela, il suffit de sélectionner le choix oui pour les options Permettre les commentaires et Permettre les trackbacks, onglet Outils, option Configuration de DotClear, puis de valider en cliquant sur le bouton Enregistrer (en bas de la page).

Fin

Dernier conseil : gardez un œil régulier sur ce qu'il se passe chez vous, on est jamais complètement à l'abri des voyous, ils ont beaucoup d'imagination !

Là c'est vraiment fini \o/

Notes

[1] Je n'ai pas encore eu connaissance de problèmes avec d'autres tables que celle des commentaires.

[2] Il se peut que le préfixe dc_ des tables soit différent pour votre installation. En effet c'est le préfixe par défaut proposé à l'installation mais vous pouvez très bien avoir utilisé un autre préfixe, par exemple pour stocker les tables de plusieurs blogs dans la même base de données.

[3] Il s'agit de ceux utilisés pour vous connecter à votre base de données, ceux qui sont précisés dans le fichier conf/config.php de votre installation Dotclear. Voir les valeurs définies pour les constantes DB_USER et DB_PASS.

[4] Dans ce cas vous conservez la totalité des commentaires présents dans ces tables, SPAM compris, d'où le nettoyage nécessaire sinon la sanction risque d'être plus dure la prochaine fois.

[5] Dans ce cas vous avez perdu les commentaires des tables correspondantes, à moins, bien sûr, que vous possédiez une sauvegarde récente de votre base de données.

[6] Il se peut que vous soyez confronté à deux types de sanction en fonction des tables. Repérez alors les instructions correspondantes à votre cas pour chacune des tables dans les deux sections qui suivent.

[7] Vous pouvez aussi utiliser l'outil de gestion de base de données de Free, phpMyAdmin, pour le faire si vous le jugez plus aisé.

[8] Il est possible de restaurer le contenu de ces tables à partir d'une sauvegarde récente, mais j'ai choisi de ne pas en parler ici pour ne pas surcharger ce billet déjà fort long.

Ajouter un commentaire

Les commentaires peuvent être formatés en utilisant une syntaxe wiki simplifiée.

Haut de page