web-dev-qa-db-fra.com

Dois-je indiquer que l'utilisateur existe ou a été supprimé de la page d'erreur?

Sur un site Web public ordinaire, le profil de l'utilisateur est toujours visible publiquement pour tous les visiteurs (tels que Stack Overflow), où ils peuvent limiter certaines informations via les paramètres de confidentialité ou en supprimant simplement les informations. Maintenant, l’utilisateur a décidé de supprimer son compte (dans mon cas, désactivez-le) afin que son compte n’existe plus techniquement. À la manière dont mon système est configuré, lorsque leur compte est désactivé, leur nom d'utilisateur pour tout contenu qui leur est connecté devient simplement "Utilisateur anonyme", comme s'il s'agissait d'un invité ayant posté.

Je pense que cela pourrait créer une certaine confusion chez les autres utilisateurs. Je suis également préoccupé par le type d'erreur à afficher lorsque quelqu'un tente d'afficher sa page de profil. Mon instinct me dit d'afficher simplement une page 404 standard pour masquer le fait qu'elles existaient auparavant, mais vous devez également tenir compte du fait que, puisque les noms d'utilisateur doivent être uniques, n'importe qui peut accéder à la page du registre et taper le nom d'utilisateur pour voir si il vraiment existe ou pas.

J'ai un problème similaire avec un autre site Web, qui donne aux utilisateurs la possibilité de masquer leurs profils au public et permet uniquement aux utilisateurs enregistrés de le consulter. Là encore, le dilemme du type de message d'erreur à afficher lorsqu'un utilisateur non enregistré tente d'afficher son profil avec des autorisations non valides.

Ainsi, serait-il acceptable d'afficher des erreurs de base telles que "l'utilisateur a été désactivé" ou "vous devez être connecté pour voir ce profil" afin de donner aux autres visiteurs une idée des raisons pour lesquelles la page ne peut pas être affichée, ou devrait J'essaie de couvrir un peu la vie privée de l'utilisateur et d'afficher un 404 standard sans indiquer de quelque manière que l'utilisateur puisse exister? Y a-t-il d'autres problèmes que je ne réalise pas à propos de l'une ou l'autre voie?

Pour revenir au début, devrais-je même prendre la peine de changer le nom de l'utilisateur en "Utilisateur anonyme" lorsque son compte est désactivé? Serait-il acceptable d'afficher simplement une version non liée de leur nom d'utilisateur à la place du nom d'affichage lié normal?

3
animuson

J'ai trouvé un moyen décent de résoudre tous ces problèmes en un seul message. Afficher simplement un message générique tel que "Vous ne pouvez pas afficher cette page" résoudra les problèmes de confidentialité, mais pas la confusion. Donc, je vais aussi lister tous les raisons possibles de la réception de l'erreur. Cela donnerait quelque chose comme ça:

Un problème est survenu lors de l'affichage de cette page.

Raisons possibles:

  • L'utilisateur spécifié n'existe pas dans notre système.

  • L'utilisateur n'autorise pas les utilisateurs anonymes à consulter leur profil.

  • L'utilisateur a désactivé son compte.

Etant donné que cela couvre également les cas où l'utilisateur n'existait pas au départ, il est impossible pour un utilisateur consultant cette page de savoir s'il existait ou non (à moins de savoir qu'ils existaient auparavant). S'ils s'attendaient à ce que l'utilisateur existe, cela suggère les solutions de remplacement.

Le problème, c’est qu’il combine trois codes d’état:

  • 401 non autorisé pour "Doit se connecter pour voir"

  • 403 Interdit pour "utilisateur désactivé"

  • 404 introuvable pour "utilisateur jamais existé"

Comme utiliser un 401 ou un 403 n'aurait aucun sens pour les deux autres (respectivement), je vais m'en tenir à un code d'état 404. Envoyer une réponse 200 OK est absolument inacceptable car cela permet aux moteurs de recherche de mettre librement en cache la page, car ils pensent que c'est une page réelle. De même, si un utilisateur existait auparavant et que est mis en cache, la confusion sera encore plus grande. L’envoi d’un 404 encouragera les moteurs de recherche à vider le cache dont ils disposent pour effacer l’historique de cet utilisateur (s’ils désactivent leur compte ou décident ultérieurement de le rendre privé). Selon sa description :

La ressource demandée est introuvable, mais peut être disponible à nouveau. Les demandes ultérieures du client sont acceptables.

Même si la page est techniquement "trouvée", c'est la chose la plus proche. Il indiquera correctement que la page demandée n'existe pas, du moins pour le moment, mais ne leur interdit pas de continuer à demander à l'avenir de vérifier son existence.

1
animuson

Je n'irais pas avec une page 404. Une page 404 n'est pas simplement une page, mais aussi une réponse. Cela permet au client de savoir que la page n'a pas été trouvée. Qu'il a été effacé ou que l'URL est fausse.

Si vous utilisez une sorte de session pour masquer des informations réservées aux utilisateurs connectés, vous pouvez utiliser le langage de script côté serveur de votre choix (asp, coldfusion, jsp, php) pour afficher la page en fonction des droits de la session. pour afficher des informations.

Si un profil a été supprimé, ne le supprimez pas de votre magasin de données. Au lieu de cela, ajoutez une colonne pour isdeleted et cochez la case Oui. Lorsque quelqu'un atteint un profil de suppression, il vous suffit de demander à votre site de générer l'utilisateur qui n'est plus sur notre système et de lui donner quelques options supplémentaires. Par exemple, quelqu'un ferme son profil de rencontre sur un site de rencontre, mais vous suggérez d'autres correspondances.

Il est très important de ne pas supprimer de données. Dites qu'un utilisateur supprime, puis revient 6 mois plus tard. En enregistrant leur profil, vous pouvez récupérer les utilisateurs que vous avez perdus par le biais de campagnes par courrier électronique, etc. Je ne pense pas que même Facebook supprime réellement votre profil.

Assurez-vous que vos conditions stipulent combien de temps vous allez stocker ces informations avant de les purger et de les supprimer définitivement.

3
Frank

Je ne dirais pas publiquement qu'un compte a été désactivé ou supprimé. Un avis indiquant que "vous devez être connecté pour afficher ce profil" est correct ou "vous ne disposez pas de l'autorisation nécessaire pour afficher ce contenu" ou "vous devez être connecté pour afficher ce contenu". Quelque chose de générique dans ce sens

1
Anagio