Nouveau plugin pour filtrer les inscriptions et éviter le spam

Hello,

Depuis ce matin, j’ai des spammers qui créer des comptes sur l’une de mes instances Peertube pour vendre de la w**d.
Habituellement, je me protège de ces pénibles avec mon plugin georegister , qui me permet de bloquer les IPs en fonction de leurs pays. Sauf que ce coup-ci, les IPs ne sont pas associées à un pays que je peux facilement bloquer.

Je vous présente donc un nouveau plugin, codé à la va vite: filterregistrations.

L’idée: on peut configurer des chaînes de texte interdites dans le nom affiché, le nom d’utilisateur ou l’email.

Voilà comment se présente l’écran de configuration du plugin:

On trouve un champs par entrée de formulaire (display name, username, email).
Tous ces champs acceptent les mêmes syntaxes:

  • une ligne commençant par # est considérée comme un commentaire, et sera ignorée
  • une ligne de la forme /test/ ou /test/i sera considérée comme une expression régulière (avec ou sans modificateurs)
  • les lignes vides (ou avec uniquement des espaces) sont ignorées
  • pour les autres lignes, on regarde si la valeur contient cette ligne (on compare après avoir mis en minuscule, ce qui veut dire que le test est non sensible à la casse - du moins pour les caractères latins)

On a enfin un dernier champs, dans lequel on peut choisir le message à afficher aux utilisateur⋅rice⋅s dont l’inscription a été bloquée par le plugin.

C’est vraiment fait à l’arrache, pour dépanner rapidement. Je suis conscient qu’il va falloir:

  • nettoyer un peu le code, et le passer en typescript
  • ajouter des tests unitaires
  • traduire les écrans de paramétrages
  • ajouter de la documentation
  • valider la configuration pour éviter les fautes de frappe, ou signifier les expressions régulières invalides
  • permettre de filtrer aussi sur le nom de la chaîne par défaut
  • un peu plus de finesse dans les messages de refus affichés
  • gérer la sensibilité à la casse pour les alphabets non latins

Dans mon cas, pour bloquer la vague de spam que je subit, je vais par exemple ajouter ceci comme règle pour le champ username: /weed.*delivery/i.

Pour installer le plugin, il va falloir attendre quelques heures qu’il soit référencé par Peertube.

Si le plugin vous plait, et que ça vous dit de lâcher un petit pourboire, il y a des liens de sponsoring sur le dépot: https://github.com/JohnXLivingston/peertube-plugin-filterregistrations

2 Likes

Je viens d’ajouter la possibilité de filtrer - de la même manière - sur les IPs des utilisateur⋅rice⋅s.

Je me rend compte que le plugin ne semble toujours pas indexé. Je ne le trouve sur aucune de mes instance Peertube.
En regardant la page https://packages.joinpeertube.org/api/v1/plugins?count=10000, je ne le vois pas.
L’indexation tourne bien ? @Chocobozzz ?

La page npm du plugin: peertube-plugin-filterregistrations - npm

Hello,

You plugin doesn’t seem to be index by NPM: peertube-plugin-filterregistrations

Mince… Qu’est ce que j’ai raté ? Pourtant le paquet est marqué public. Je ne vois pas non plus d’oubli manifeste dans le package.json (si je compare aux autres plugins que j’ai publié).
Si quelqu’un a une idée, je suis preneur…

Peut-être la licence ?

J’y ai pensé. J’ai bien un fichier de licence, mais c’est vrai que je ne l’ai pas précisé dans le package.json. Ça manque aussi pour le plugin de tchat d’ailleurs, qui lui est bien référencé. Je vais tester.

Ps: j’ai aussi envoyé un mail au support de NPM.

C’était bien un bug du coté de NPM, le support m’a répondu avoir corrigé. Et effectivement, on trouve le plugin maintenant.
Et je ne devais pas être le seul bloqué: une recherche sur «peertube-plugin-» retournait 86 résultats hier, 88 aujourd’hui.