2009-12-18 5 views
1

J'ai travaillé sur une application Web qui pourrait être sujette aux abus de l'utilisateur, en particulier les commentaires/comptes de spam. Je sais que RECAPTCHA s'occupera des bots en ce qui concerne les faux utilisateurs, mais il ne fera rien pour les utilisateurs qui créent un compte et mettent en quelque sorte leurs commentaires sur le pilote automatique (comme je l'ai vu sur Twitter d'innombrables fois) .Traitement des abus des utilisateurs dans les rails

La solution que j'ai imaginée est de permettre à tout utilisateur de marquer un autre utilisateur et d'avoir une liste d'utilisateurs marqués (attribut booléen) sur une action d'index utilisateur accessible uniquement par l'administrateur. Ensuite, les utilisateurs qui ont été marqués peuvent devenir des candidats à l'interdiction (un autre attribut booléen) ou inachevés. Les utilisateurs bannis pourront toujours accéder au site mais auront des privilèges grandement réduits. Pour certaines raisons, je ne souhaite pas supprimer complètement les utilisateurs. Cependant, quand j'y ai pensé, je me suis rendu compte que passer par une liste d'utilisateurs marqués pour décider lesquels devraient être interdits ou non marqués pourrait prendre beaucoup de temps pour un administrateur. À court d'embaucher quelqu'un pour faire le sans fanfaronnade/bannissement des utilisateurs, y at-il un moyen plus automatisé et élégant de s'y prendre?

Répondre

1

Avant le "Web 2.0", les sites Web étaient modérés par les administrateurs. Maintenant, le but est d'amener les communautés à se modérer. StackOverflow lui-même est une étude de cas fantastique. Le reputation system permet aux utilisateurs d'effectuer plus de tâches «administratives», car ils se révèlent dignes de confiance. Si vous autorisez les utilisateurs à se signaler, vous êtes déjà sur ce chemin. En ce qui concerne les détails du système (qui peut signaler, dénigrer et bannir), je dirais que vous devriez regarder diverses communautés en ligne réussies (comme StackOverflow) pour voir comment elles fonctionnent et comment elles fonctionnent. En fin de compte, il faudra probablement quelques essais et erreurs, car toutes les communautés diffèrent. Si vous voulez écrire du code, vous pouvez créer un script qui recherche les modèles d'utilisation typiques des spammeurs (par exemple, le même commentaire posté sur plusieurs pages), mais je pense que l'objectif devrait être de développer une communauté qui le fait pour toi. Cela peut être plus sur la planification que sur la programmation.

+0

J'aime vraiment cette idée, je ne voulais pas un utilisateur aléatoire pour signaler d'autres utilisateurs bon gré mal gré. J'aime vraiment le système de réputation de StackOverflow. Merci pour la suggestion! –

6

Je créer une table nommée abus, contenant à la fois l'utilisateur signalé et celui qui a déposé le rapport. Au lieu du champ booléen marqué, je suggère d'avoir une colonne de cache de compteur telle que "abuse_count". Lorsque cette colonne atteint une valeur prédéfinie, vous pouvez automatiquement "interdire" les utilisateurs.

+0

Excellente suggestion! Je pourrais juste implémenter celui-là. –

1

Certains spammeurs sophistiqués sont heureux de passer leur temps à casser votre captcha s'ils sentent que la récompense est assez élevée. Vous devriez également envisager de regarder un serveur de spam tel que Akismet pour lequel il y a un plugin de rails idéal (https://github.com/joshfrench/rakismet).

Il existe d'autres alternatives telles que defensio (https://github.com/thewebfellas/defensio-ruby) ainsi qu'une gemme que j'ai trouvé une fois qui a très bien fonctionné pour détecter les pourriels de blogs courants, mais je ne peux pas pour la vie de moi le trouver plus.

Questions connexes