URL: https://linuxfr.org/news/seo-seo-seo-seo-et-aussi-le-seo Title: SEO, SEO, SEO, SEO et aussi le SEO Authors: Benoît Sibaud Davy Defaud, ZeroHeure et Florent Zara Date: 2019年04月26日T14:48:30+02:00 License: CC By-SA Tags: spam, seo et hadopi Score: 58 En février 2018, j’avais fait un petit point sur une tâche régulière, répétitive et rébarbative liée à _LinuxFr.org_, qui n’est probablement pas significativement perçue par la plupart des lecteurs (tant mieux) : la gestion du [_spam_](https://fr.wikipedia.org/wiki/Spam), des pénibles publicitaires sans scrupules, de la plaie des [SEO](https://fr.wikipedia.org/wiki/Optimisation_pour_les_moteurs_de_recherche), des escroqueries et autres arnaques type _scam_ ou loterie, etc. Bref, des pénibles du quotidien qui ne sont pas des vrais visiteurs du site, mais qui veulent juste fourguer leur camelote par n’importe quel moyen. Il s’agit d’évoquer les différentes formes que cela prend, les méthodes mises en place pour réduire ou bloquer la nuisance et d’illustrer le propos par divers exemples. # Contexte Je me balade sur le site, je vois un commentaire vantant un comparatif de VPN, je me dis que c’est louche (pour plein de raisons, la huitième va vous étonner, mais principalement par expérience, voir plus loin la discussion sur _PreSpam_), c’est un nouveau compte. OK, il s’agit donc d’un _spam_ de type SEO sournois. Pris d’une frénésie vindicative contre le _spam_, je lance une recherche en base de données sur ce domaine en particulier. Une seule occurrence. Petite déception, j’étais persuadé d’en voir plus régulièrement des vendeurs de _spams_, euh, de VPN. Là, paf, mauvais réflexe, je me dis qu’il suffirait de lister tous les domaines présents dans les commentaires supprimés sur les trois dernières années, de nettoyer un peu tout ça, et de relancer une recherche pour détecter du _spam_ résiduel. Après tout, _y en a juste pour cinq minutes_. ---- [Dépêche précédente : Spam spam spam spam et aussi le spam](https://linuxfr.org/news/spam-spam-spam-spam-et-aussi-le-spam) ---- Quelque temps plus tard, me voici en possession d’une liste de plus de deux cents domaines et/ou morceaux d’URL. # À la recherche du spam perdu Donc cinq minutes on avait dit, pas la peine de faire dans le subtil, optons pour le brutal. D’abord une petite recherche tout en délicatesse sur les commentaires (`SELECT comments.id, comments.created_at FROM comments WHERE state!='deleted' AND (body LIKE '%iamabigvillain.invalid%' OR ...);`), en gros une pleine page de requêtes SQL cracra. La première exécution donnera 9 résultats, en raison d’un faux positif (un des domaines est juste un site lié à l’impression 3D en général, et les spammeurs ont utilisé des sous-parties du site alors que j’avais filtré sur le domaine complet). Après nettoyage, cela donnera : ``` +---------+---------------------+ | id | created_at | +---------+---------------------+ | 1647294 | 2016年03月09日 15:33:37 | | 1703702 | 2017年06月03日 07:39:51 | | 1753669 | 2018年11月06日 18:18:50 | | 1768965 | 2019年04月25日 08:23:37 | | 1768975 | 2019年04月25日 08:36:30 | +---------+---------------------+ 5 rows in set (51 min 5.62 sec) ``` OK, donc au moins encore cinq commentaires à nettoyer au lance‐flammes. À tout hasard, jetons un œil du côté des contenus, de manière tout aussi délicate (du type `SELECT diaries.id, diaries.created_at FROM diaries,nodes WHERE diaries.id = nodes.content_id AND nodes.content_type='Diary' AND nodes.public=1 AND (body LIKE '%iamabigvillain.invalid%' OR ...);` pour les journaux, par exemple. Après 3 min et 30 s pour les journaux, 2 min 18 s pour les forums, 5 s pour le suivi, 1 min 20 s et 3 min 24 s pour les dépêches (première et seconde parties) et 4 s pour les pages wiki, et en omettant les sondages et les liens pas vraiment concernés, on peut conclure que les contenus ne sont pas trop concernés (ou plutôt que le ménage y a déjà été fait précédemment). Le traitement des cinq commentaires détectés va permettre de fermer quatre comptes, de finalement supprimer un total de dix‐neuf commentaires : oui, souvent le SEO tergiverse, flâne, complimente, tourne autour du pot, avant de poser son étron sur la table, donc il y a souvent plusieurs commentaires d’approche avant les premiers commentaires de pur _spam_. En cas de nettoyage, tout est supprimé. Au passage, on gagnera aussi quatre domaines supplémentaires, et on aura le droit de recommencer la recherche en incluant ces quatre nouveaux domaines [`Empty set (52 min 8.04 sec)`]. # La liste des domaines/URL des pénibles du coin Que trouve‐t‐on dans la liste des domaines/URL des pénibles fréquentant _LinuxFr.org_ ? Est‐on plutôt dans le domaine _jacky tuning auto_, _joaillerie parfumerie luxe_, _sadomasochisme et bondage_, _couture et pâtisserie_ ou _tutoriel jardinage_ ? Une grande catégorie (plutôt anglophone) comporte les applications : il semble qu’il existe de nombreux sites dédiés aux applications mobiles (probablement légitimes et pas directement propriétés des spammeurs SEO), de la forme `nom.du.site/nom_appli`, et donc, naturellement, on se retrouve avec plein de noms contenant _apk_, _app_, _download_, _android_, _ios_, _mob_, etc. Et sur chacun de ces sites, notre spammeur va essayer de fourguer ces applis, souvent les mêmes. Les applis, d’après leurs noms, semblent être liées (en tout cas prétendre être liées ou utiliser des noms faisant penser que) à Android en général, à la communication et les réseaux sociaux, aux achats (légaux ou non), aux jeux d’argent en ligne, aux VPN et Wi‐Fi, aux _torrents_, etc. Et parfois le spammeur a directement un domaine pour fourguer son application. Ça reste de toute façon varié, on va trouver du `.com`, du `.biz`, du `.vip`, du `.in` (Inde), du .`onl`, `.software`, du `.fyi`, etc. On va aussi trouver la même chose pour des applis non mobiles ou des sites, avec des usurpations assez évidentes de noms sur des jeux connus (Counter Strike, Minecraft, etc.), des services connus (iTunes, Google Play, comment contourner Hadopi, etc.), et le logiciel libre n’est pas épargné (7-Zip, FileZilla, Kodi, etc.). On peut y ajouter les jeux (d’argent ou non) en ligne (du _games_, du _poker_, du _casino_, etc.) et les applis servant à se protéger (nettoyeurs, bloqueurs) ou attaquer (logiciels espion, pirater des comptes GAFAM), il suffit d’avoir confiance... En vrac, on peut aussi trouver du vendeur de parfums, des comparateurs de trucs (VPN, mutuelles, banques, énergie, téléphone, etc.), de coloriage, de pneus, de SEO, de l’huile à barbe, un chirurgien esthétique, du médical en général, un site anti‐arnaques (_sic_), des (faux) sites de support en ligne (HP, iTunes, Lenovo, etc.), du cul (à consulter ou en rendez‐vous), du _streaming_ de sport, du JSON (si), du marabout, du site à clic sur les chats malades ou les poupées en silicone, du serrurier parisien, de l’agence de communication, du patin à roulettes, des thermomètres pour bébé, des prêts à la consommation, des produits reconditionnés, de la relecture de textes, etc. Et un peu de non identifiable (probablement lié à des langues étrangères ou des références « subtiles »). Enfin, on peut citer la catégorie de l’indirection : il s’agit de pointer vers une entrée sur un autre site (qui, comme _LinuxFr.org_, permet aux visiteurs de créer des comptes et de commenter) qui va lui contenir le _spam_ ou des liens vers le _spam_. C’est varié, ça peut être des titres de presse, des sites type réseaux sociaux ou blogs, des hébergeurs gratuits, des boutiques sur des sites marchands, etc., et c’est varié en termes de langues aussi (vietnamien, brésilien, indonésien, pakistanais, etc., ça fait voyager). # Détection et traitement On constate : - des comptes ouverts et jamais utilisés, qui sont soit des vrais spammeurs qui n’ont jamais réussi à spammer (robots ou humains dysfonctionnels), soit des utilisateurs légitimes (et c’est assez indiscernable sur un compte sans contenu, sans commentaire et qui a le même domaine pour le courriel qu’un tiers des comptes valides, par exemple, tout en ayant une adresse IP dans une plage tout aussi indiscernable) ; - des comptes ouverts avec _spam_ d’entrée (c’est plutôt rare, et plutôt sur du _spam_ francophone, tendance SEO débutant) ; - des comptes ouverts, puis attente avant de commencer à spammer ; - des comptes ouverts, des propos lénifiants (_merci_, _c’est très intéressant_, etc., le plus souvent en anglais d’ailleurs, puis _spam_ quelques commentaires plus tard) ; - des comptes ouverts, des copier‐coller de commentaires déjà existants ou trouvés sur d’autres sites, avec liens de _spam_ en bonus ; - pas vraiment de cas de réédition des commentaires plus tard (la période de réédition de ses commentaires sur _LinuxFr.org_ étant probablement trop courtes pour ça) ; en revanche, on va poster sur des vieux contenus âgés d’un ou deux mois . On réagit avec : 1. de la vigilance et de l’expérience de l’équipe de modération ; 2. des remontées par les visiteurs, qui aident pas mal ; 3. si un motif est identifié, on peut lancer une petite requête en base de données pour voir si l’on s’est déjà fait avoir ; 4. une attention portée au besoin de bienveillance pour les nouveaux ; on ne peut pas demander à chaque nouvel inscrit, un dossier complet avec copie de passeport, un mot des parents, une caution bancaire, une clé GPG premium et un compte IRC certifié, plus une période de surveillance avec modération _a priori_ pour chaque caractère tapé ; donc, il y a un compromis entre la forteresse vide et l’agora avec un videur discret pour les indélicats. Un exemple de l’expérience en modération, ce que j’ai appelé _PreSpam_ (en référence à _PreCrime_ de P. K. Dick, dans _Minority Report_ notamment) : ``` 20:23:56 Benoît Sibaud : [url] futur spammeur ? 20:25:41 Benoît Sibaud : C’est pour voir si ma boule de cristal est bonne en prédiction ou non 22:44:04 Ysabeau : Là [url], ça sent le spam à plein nez, le lien renvoie vers un truc qui n’a rien à voir. 22:45:55 Ysabeau : Donc, oui, c’était bien un futur spammeur, commentaire supprimé. 11:18:03 Benoît Sibaud : Compte fermé. ``` ou : ``` 20:18:35 Benoît Sibaud : [url] nouveau signalement de PreSpam ? 21:15:20 palm123 : à surveiller (2 jours plus tard) 06:59:10 Julien Jorge : Il revient [url] 10:07:59 palm123 : Il essaie de monter son karma 10:27:18 Benoît Sibaud : Plutôt de passer deux commentaires 'plausibles' pour éviter une détection (je ne suis sûr que notre système de karma soit suffisamment commun pour être pris en compte par un spammeur). 10:27:53 Benoît Sibaud : On a déjà de multiples cas de "je spamme au 3e commentaire". ``` (cette dernière expérience continue, cet utilisateur n’a posté que deux commentaires. Suspense !) # Conclusion C’est pratique, je peux réutiliser à peu près la même conclusion que la dernière fois (d’autant que cette dépêche ne doit me prendre _que 5 minutes_, évidemment). J’espère avoir donné un petit panorama varié des publicitaires pénibles et des SEO sans scrupules, bref du _spam_ reçu/subi par l’équipe _LinuxFr.org_. C’est malheureusement un travail régulier de les bouter hors d’ici : chaque lettre rétrospective de la quinzaine passée, comme [la dernière de début avril 2019](https://linuxfr.org/users/oumph/journaux/linuxfr-org-premiere-quinzaine-d-avril-2019), mentionne le sujet, inlassablement. Avec un peu de chance, l’équipe agit suffisamment vite pour que vous n’en perceviez qu’une petite partie (idéalement 0). Lorsque vous détectez du _spam_, n’hésitez pas à nous le signaler (étiquette [tag] _spam_ sur un contenu, par tribune de rédaction, par courriel, etc., peu importe), on adore le bruit que cela fait quand on l’écrase. Si vous avez vous‐même une expérience sur le _spam_ sur votre propre site ou dans une autre communauté, si vous avez des idées d’outils ou de configuration, n’hésitez pas à partager dans les commentaires. Et si vous êtes un spammeur/SEO et que vous voulez placer vos solutions dans lesdits commentaires parce que ça a l’air bien ici ça parle _spam_ et SEO, sachez que je vous conchie toujours[.](https://fr.wiktionary.org/wiki/conchier)