Que faire des comptes inactifs ?

Adresse mail jamais confirmée, aucune connexion, ...

a marqué ce sujet comme résolu.

Bien le bonjour, bien le bonsoir,

J’ouvre ce sujet pour discuter des comptes membre qui sont créés mais inactifs. Le sujet sera abordé à la prochaine réunion des dév’s de ZdS, mais j’anticipe, surtout pour donner quelques chiffres.

Rappel des différents états possibles d’un compte

Un visiteur du site se crée un compte. Le compte est créé en base de données. Il possède une date d’inscription, mais est inactif.

Le nouveau membre doit alors valider son inscription en cliquant sur le lien qui lui a été envoyé par mail. Une fois qu’il a cliqué sur ce lien, son compte devient actif.

Lorsqu’un membre se connecte, la date de dernière connexion est mise à jour en base de données.

Finalement, un membre peut être banni définitivement, empêchant alors la connexion.

Statistiques actuelles

  • Nombre d’utilisateurs total : 25336
  • Nombre d’utilisateurs qui ont confirmé leur adresse mail : 22606 (soit 89 % du nombre total)
  • Nombre d’utilisateurs qui n’ont pas confirmé leur adresse mail : 2730, dont qui se sont inscrits il y a plus d’un an : 2488
  • Nombre d’utilisateurs qui se sont connectés au moins une fois : 22804 (soit 90 % du nombre total et 101 % du nombre de mails confirmés, oui, il y a 375 comptes non confirmés mais qui se sont connectés…)
  • Nombre d’utilisateurs qui ne se sont jamais connectés après avoir validé leur adresse mail : 2532, dont qui se sont inscrits il y a plus d’un an : 2266
  • Nombre d’utilisateurs bannis définitivement : 2386

Concernant les comptes non confirmés qui ont pu se connecter, les dernières connexions de comptes non confirmés datent de 2017. Je viens de vérifier en local, je ne peux pas me connecter si je n’ai pas validé mon adresse mail et la date de dernière connexion reste nulle.

Les statistiques ont été générées avec ce script :

from django.contrib.auth.models import User
from django.db.models import Q

from zds.member.models import Profile


total_number = User.objects.count()
print("Total number of users:", total_number)

confirmed_number = User.objects.filter(is_active=True).count()
print("Total number of confirmed users:", confirmed_number, 100*confirmed_number/total_number)

never_logged_users_number = User.objects.filter(last_login=None).count()
logged_users_number = total_number - never_logged_users_number
print("Number of logged users:", logged_users_number, 100*logged_users_number/total_number, 100*logged_users_number/confirmed_number)

banned_users_number = Profile.objects.filter(can_read=False,end_ban_read=None).count()
print("Number of banned users:", banned_users_number)

print("Number of never logged users:", never_logged_users_number)
print("Number of never logged users, registered at least a year ago:", User.objects.filter(last_login=None, date_joined__lt="2022-05-21").count())

print("Number of unconfirmed users:", User.objects.filter(is_active=False).count())
print("Number of unconfirmed users, registered at least a year ago:", User.objects.filter(is_active=False, date_joined__lt="2022-05-21").count())

print(User.objects.filter(Q(is_active=False) & ~Q(last_login=None)).count())
for u in User.objects.filter(Q(is_active=False) & ~Q(last_login=None)).order_by("last_login"):
   print(u.username, u.date_joined, u.last_login)

Lancé avec la commande :

python manage.py shell < script.py

Que faire avec les comptes inactifs ?

Pour ceux qui ne se sont jamais connectés après avoir validé leur adresse mail, ça me paraît difficilement justifiable de supprimer leur compte. À moins de dire clairement dans le mail de validation, quelque chose comme : "vous avez maintenant une semaine pour vous connecter et activer votre compte".

On veut garder les bannis, parce qu’on ne veut pas qu’ils s’inscrivent à nouveau avec la même adresse mail.

Par contre, je pense qu’on peut régulièrement supprimer les comptes qui n’ont pas validé leur adresse mail un an (durée à définir) après s’être inscrit.

Des avis ? Des idées ? Des remarques ? :)

Quel est l’impact de ne rien faire ?

Cela ne me semble pas avoir d’incidence. Ni sur les disques1, ni sur les performances générales du site.

Ou alors j’ai mal compris, il est question d’inciter ces gens à revenir en leur envoyant un e-mail ?
Ça ne me semble pas une bonne idée.


  1. 3 000 utilisateurs, 3Mio si un utilisateur est 1kio.
+3 -0

Pour moi on ne peut pas répondre sans d’abord répondre à cette question : « Pourquoi voudrait-on faire quelque chose quant aux comptes inactifs ? Quel serait le but de cette éventuelle action ? »

À noter qu’on peut se poser la même question pour un autre type de compte inactif, ceux des personnes qui ont été actives mais qui ne le sont plus. Là on est dans un problème de politique de conservations des données personnelles ; certains sites comme LinuxFR ont imaginé des choses à ce sujet, mais ça demande d’être assez délicat pour éviter de casser les archives du site pour « rien » (dans le sens : pas d’obligation légale). Sachant qu’on a déjà un peu ce problème avec la suppression de compte, certains sujets de forums sont devenus assez difficiles à comprendre.

Pour ceux qui n’ont jamais validé leur compte, je suis pour les supprimer au bout de quelques mois.
Pour les comptes inactifs (pas de nouvelle connexion depuis X années/mois), on peut envisager un système de relance: Bonjour, vous ne vous êtes pas connecté de puis un moment. Sans action de votre part, nous anonymiserons votre compte dans 30 jour. Commencer par 2–3 ans serait un bon début je pense. Et si la personne ne se connecte pas, on passe la moulinette d’anonymisation.

+1 -0

Ce que l’OP appelle comptes inactifs, ce sont en fait : un pseudo, associé à une adresse mail probablement bidon, et strictement rien d’autre.

Si le pseudo 'TOTO' apparaît dans cette liste, j’imagine que ça empêche toute nouvelle tentative de créer un compte avec le pseudo TOTO. Si oui, c’est utile de nettoyer cette table, et un nettoyage hebdomadaire serait même un bon rythme.

Si ça n’empêche pas de créer un nouveau compte avec un pseudo déjà 'presque créé’, c’est neutre, mais quel est l’intérêt de garder ces données bidon ?

Les adresses mail en question, est-ce qu’elles ressemblent à quelque chose, est-ce qu’il y a une majorité de gmail, d’adresses professionnelles ? Est-ce que la proportion de tel ou tel provider dominant est la même parmi ces adresses bidon et parmi les adresses confirmées.

Les comptes en sommeil (évoqués par Fumble) ne sont pas évoqués par l’OP.

Pour les comptes inactifs (pas de nouvelle connexion depuis X années/mois), on peut envisager un système de relance: Bonjour, vous ne vous êtes pas connecté de puis un moment. Sans action de votre part, nous anonymiserons votre compte dans 30 jour. Commencer par 2–3 ans serait un bon début je pense. Et si la personne ne se connecte pas, on passe la moulinette d’anonymisation.

Fumble

Attention à deux choses là-dedans :

  1. Le délais de prévenance, 30 jours ça peut être très court .
  2. Surtout, on ne veut probablement pas lancer une anonymisation comme quand on supprime un compte. Le but c’est d’éviter de ne pas garder de données personnelles non indispensables, et pas de supprimer les comptes devenus inactifs

Attention à deux choses là-dedans :

  1. Le délais de prévenance, 30 jours ça peut être très court .
  2. Surtout, on ne veut probablement pas lancer une anonymisation comme quand on supprime un compte. Le but c’est d’éviter de ne pas garder de données personnelles non indispensables, et pas de supprimer les comptes devenus inactifs

SpaceFox

Un délai, ça s’ajuste. Tu peux mettre 60 ou 90j si tu veux. C’est uniquement pour donner une idée générale.

Il faudrait surtout regarder ce que dit le RGPD quand à la conservation des données personnelles de personnes n’ayant pas utilisées le service depuis X années.

+1 -0

Surtout, on ne veut probablement pas lancer une anonymisation comme quand on supprime un compte. Le but c’est d’éviter de ne pas garder de données personnelles non indispensables, et pas de supprimer les comptes devenus inactifs

Je suis totalement d’accord. On a un vrai problème avec l’anonymisation qui rend de vielles discussions incompréhensibles. Même avec les suppressions manuelles de comptes.

Je pense qu’on devrait améliorer le système d’anonymisation.

+5 -0

Ne pas oublier aussi qu’on a des contenus pour lesquels on veut garder le nom. Si j’ai écris un tuto / article / billet, je n’ai pas à en perdre la paternité car je ne me suis pas connecté.

Par contre, je pense qu’on peut régulièrement supprimer les comptes qui n’ont pas validé leur adresse mail un an (durée à définir) après s’être inscrit.

Aucun problème avec ça, perso.

+4 -0

Bonsoir,

JE ne prétends pas détenir une quelconque vérité absolue, mais voici ce que je fais sur mon site et que je pense ne pas être trop mal:

Les nouveaux comptes créés ne vont pas directement dans la table des utilisateurs, ils vont dans une table à part qui est purgée tous les jours. LE véritable utilisateur n’est créé qu’au moment où il valide son compte. JE pars du principe que si la personne ne valide pas son compte dans la foulée juste après la création (après max. 12h), c’est soit un boulet, soit un robot. C’est simple et efficace.

JE supprime automatiquement les comptes qui ne se sont pas connectés depuis plus d’un an. Par contre je ne supprime jamais, ou du moins jamais complètement, les utilisateurs qui ont posté au moins une fois sur le forum public. Le problème de supprimer les comptes des gens qui ont posté sur le forum, c’est qu’on est obligé de remplacer le pseudo par "anonyme". Dans des vieilles discussions où les pseudos seraient progressivement tous remplacés par "anonyme", on finirait par ne plus rien comprendre… Bon, la grosse différence que j’ai avec ZDS, c’est que la grande majorité des gens ne postent jamais sur le forum, car ce n’est pas l’intérêt principal du site.

Pour les comptes validés mais qui ne se sont jamais connectés, j’applique une durée de suppression plus courte, en l’occurence 30 jours, ce qui est déjà pas mal. JE pars de nouveau du principe que si on crée son compte, c’est pour l’utiliser…

+2 -0

Merci pour tous vos retours.

En effet, c’est peut-être un peu maladroit de ma part, je n’ai pas évoqué pourquoi je me pose cette question.

Ile me semble qu’en regardant un bug à cause d’un pseudo qui contient un /, je me suis rendu compte qu’il y avait quelques membres avec des pseudos contenant un slash, et pour la plupart c’était des comptes qui semblaient bidons (avoir pour pseudo une chaîne qui teste une faille XSS…). À partir de là, j’ai fait ces quelques statistiques pour me rendre compte de la proportion de ce genre de comptes bidons.

Un deuxième point, c’est comment est-ce qu’on compte le nombre de membres actifs, actifs dans le sens "qui ont une activité sur le site" ? Là on peut voir qu’on est à 22000 membres qui se sont connectés au moins une fois, mais qu’est-ce que ça veut vraiment dire ? Il ne me semble pas qu’il y ait 22000 membres actifs quotidiennement…

Je ne pensais pas du tout à l’aspect données personnelles en lançant ce sujet, mais c’est vrai que c’est aussi un point à avoir en tête…

On en a discuté rapidement pendant la réunion des dev’s, on était tous d’accord sur le fait que ce n’est pas vraiment un problème et que cette question ne vaut en fait pas vraiment d’y passer du temps pour implémenter une solution technique.

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte