Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
asso:moderation:mobilizon [2022/04/16 13:04] – qduchemi | asso:moderation:mobilizon [2023/03/13 17:05] (Version actuelle) – qduchemi | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | {{indexmenu_n> | ||
+ | ## Mobilizon : vive le spam ! | ||
+ | < | ||
+ | |||
+ | ### Modération fédérée : une autre paire de manches | ||
+ | |||
+ | Mobilizon est un service d' | ||
+ | |||
+ | - Les membres n'ont pas de profil → on ne peut pas les suivre. L' | ||
+ | - C'est un service fédéré : plusieurs instances du logiciel forme un réseau → les événements des uns sont visibles depuis les instances des autres. | ||
+ | |||
+ | Ce dernier point est crucial : chaque instance est libre d' | ||
+ | |||
+ | En revanche, le problème de la modération est double : | ||
+ | |||
+ | - Non seulement n' | ||
+ | - Mais les comptes de spam peuvent venir d' | ||
+ | |||
+ | Ce qui rend la modération sur les services fédérés très complexes ; à tel point qu'une [thèse conduite par une membre](https:// | ||
+ | |||
+ | ### Gérer les problèmes locaux | ||
+ | |||
+ | Les signalements sont des demandes de modération par rapport à des contenus __locaux__ mais qui peuvent être faits par des personnes __distantes__ (sur une instance avec laquelle nous sommes fédérés, par exemple). | ||
+ | |||
+ | La liste des signalement est accessible depuis le compte administrateur et ressemble à ça : | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | On constate que ces signalement sont bien effectués par des personnes extérieures. Chaque signalement est transmis sur `picasoft@assos.utc.fr`. | ||
+ | |||
+ | < | ||
+ | |||
+ | Deux cas se présentent. | ||
+ | |||
+ | #### Compte de spam | ||
+ | |||
+ | Un compte fait uniquement de la publicité et du spam, sur toutes les instances. Exemple typique via un signalement : | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | On clique sur l' | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | On décide de supprimer le compte, on y accède au compte en cliquant sur l' | ||
+ | |||
+ | < | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | On clique sur « Suspendre ». | ||
+ | |||
+ | < | ||
+ | |||
+ | #### Cas d'un contenu litigieux | ||
+ | |||
+ | Ce cas ne s'est jamais présenté mais il serait intéressant de le documenter le cas échéant : un contenu qui pose souci politiquement par exemple. L' | ||
+ | |||
+ | Dans ce cas, il sera peut-être pertinent de supprimer uniquement l' | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | < | ||
+ | |||
+ | ### Gérer les problèmes distants | ||
+ | |||
+ | En cas d' | ||
+ | |||
+ | #### Signaler le problème | ||
+ | |||
+ | En symétrique aux signalements qu'on reçoit : les personnes s' | ||
+ | |||
+ | #### Suspendre le compte localement | ||
+ | |||
+ | Par exemple, même après avoir suspendu le compte `buyyoutubeviews` en local, on constate qu'il règle un événement dans le flux : | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | En cliquant dessus, on réalise que c'est un compte distant : | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | On peut rechercher ce compte depuis l' | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Et choisir de le suspendre, comme dans le cas local. | ||
+ | |||
+ | < | ||
+ | |||
+ | < | ||
+ | |||
+ | #### Supprimer le lien de fédération | ||
+ | |||
+ | Si une instance distante avec laquelle nous somme fédérés n'a aucune politique de modération et laisse les spammeurs envahir son espace, alors nous en seront victimes en permanence. | ||
+ | |||
+ | Il faut probablement engager le dialogue, et en l' | ||
+ | |||
+ | ### Grosse vague de spam, détecter les contenus problématiques | ||
+ | |||
+ | < | ||
+ | |||
+ | Une fois dans le conteneur de base de données : | ||
+ | |||
+ | ```sh | ||
+ | psql -U mobilizon -d postgres_mobilizon | ||
+ | ``` | ||
+ | |||
+ | Pour détecter les profils problématiques, | ||
+ | ```sql | ||
+ | SELECT url FROM events WHERE local = true AND draft = false AND visibility = ' | ||
+ | ``` | ||
+ | |||
+ | Cette requête recherche des mots clés dans les évènements, | ||
+ | ```sql | ||
+ | SELECT organizer_actor_id, | ||
+ | ``` | ||
+ | Ces mots clés peuvent être utilisés (non exhaustif, à compléter) : | ||
+ | * cash | ||
+ | * bitcoin | ||
+ | * escort | ||
+ | * driver | ||
+ | * download | ||
+ | * exam | ||
+ | * design (! beaucoup de faux positifs) | ||
+ | * company | ||
+ | |||
+ | Cette requête indique les comptes ayant beaucoup d' | ||
+ | ```sql | ||
+ | SELECT organizer_actor_id, | ||
+ | ``` | ||
+ | |||
+ | On peut ensuite accéder au profil à l'URL `https:// | ||
+ | |||
+ | Cette requête indiques les profils ayant créé des évènement qui démarrent très peu de temps après la création du compte, encore une fois c'est parfois légitime mais c'est un critère commun à beaucoup de spams : | ||
+ | ```sql | ||
+ | SELECT DISTINCT actors.id, actors.url FROM actors INNER JOIN users ON actors.user_id = users.id INNER JOIN events ON events.organizer_actor_id = actors.id WHERE events.begins_on - users.inserted_at < '2 hours':: | ||
+ | ``` |