web-dev-qa-db-fra.com

Comment puis-je bloquer une personne abusive qui essaie sans cesse d'enregistrer plus de comptes?

J'ai un site gratuit avec inscription ouverte; tout le monde peut s'inscrire et je ne suis pas en mesure de changer cela. Cependant, les comptes doivent être approuvés par un administrateur après avoir complété un profil, j'ai donc accès à une variété d'informations pour identifier les utilisateurs en double (date de naissance, commentaire "auto introduction", adresse e-mail, photos, emplacement signalé dans le profil, IP géolocalisée , Adresse IP, etc.)

Récemment, le site a fait l'objet d'attaques d'un seul utilisateur qui est extrêmement abusif et semble avoir un temps illimité pour enregistrer plusieurs comptes. Ces comptes peuvent être bloqués relativement facilement, mais cela demande beaucoup de travail à l'administrateur (moi) et j'ai bien peur d'en manquer un parmi les comptes légitimes (cet utilisateur enregistre environ 6 comptes par jour).

J'ai déjà:

  • interdit les adresses IP connues de l'utilisateur
  • enregistrement bloqué à partir de domaines connus utilisés pour des adresses e-mail "jetables"
  • ajouté une vue spéciale pour m'aider à identifier les comptes en fonction des modèles d'accès connus de l'utilisateur

Puis-je faire quelque chose avec les cookies, etc. pour rendre encore plus difficile l'inscription de cet utilisateur?

Il s'agit d'un site Drupal 7.

EDIT: Dans mon cas, c'est un utilisateur humain, pas un bot. Mais les réponses du bot sont utiles pour ceux qui sont spécifiquement ciblés par les spammeurs.

41
Patrick Kenny

Au lieu d'essayer d'empêcher l'utilisateur de s'inscrire, qui est un jeu pour les trolls et les pirates, rendez le site ennuyeux pour lui. Donnez-lui envie de partir =, au lieu de lui donner envie de gagner le jeu de pêche à la traîne.

Ce que j'ai fait dans le passé, non spécifique à Drupal, c'est de laisser l'utilisateur s'inscrire. J'ai ensuite saboté son compte spécifique:

  1. J'ai saupoudré if ($someuser) { sleep(Rand($base, $base*2)) } dans le code, où $base augmenterait quotidiennement. Je me suis assuré qu'il avait beaucoup de temps morts.
  2. Je laisserais tomber N% de ses postes, où N a commencé au-dessus de 50% et n'a augmenté qu'à partir de là. Si le message avait certains mots clés, il serait supprimé immédiatement.
  3. Je supprimerais au hasard les règles CSS pour que la page ne s'affiche pas correctement. Encore une fois, la gravité augmenterait avec le temps.

Cela a nécessité plus d'efforts de ma part, mais selon les conseils de Sun Tzu, je conditionnais l'utilisateur à détester mon site . Je voulais qu'il se sente non pas qu'il nous agaçait, mais plutôt qu'il devrait être agacé par les retards et les bugs apparents. Il lui a fallu moins d'une semaine pour nous abandonner.

[~ # ~] edit [~ # ~] : Dans les commentaires, l'utilisateur rooby mentionne le module Misery qui est basé sur le même concept:

  1. Delay : crée un retard de longueur aléatoire, donnant l'apparence d'une connexion lente. (par défaut, cela se produit 40% du temps)
  2. Écran blanc : Présentez à l'utilisateur un écran blanc. (par défaut, cela se produit 10% du temps)
  3. Page incorrecte: Redirige vers une URL aléatoire dans une liste prédéfinie. (par défaut, cela se produit 0% du temps)
  4. Nœud aléatoire : redirige vers un nœud aléatoire accessible par l'utilisateur. (par défaut, cela se produit 10% du temps)
  5. 403 Accès refusé : présente à l'utilisateur une erreur "Accès refusé". (par défaut, cela se produit 10% du temps)
  6. 404 Introuvable : Présente à l'utilisateur une erreur "Introuvable". (par défaut, cela se produit 10% du temps)
  7. Les formulaires ne sont pas soumis : redirigez vers le formulaire pendant la validation pour empêcher la soumission. (par défaut, cela se produit 60% du temps) Remarque: Parfois, certains formulaires valident en fonction du bouton sur lequel vous avez appuyé, cela ne fonctionnera pas dans ces cas.
  8. Crash IE6 : Si l'utilisateur utilise Internet Explorer 6, cela fera planter son navigateur. (par défaut, cela se produit 0% du temps)
  9. Spam : remplacez le contenu du nœud par un mot défini. (par défaut, cela se produit 10% du temps)
  10. Déconnexion : déconnectez l'utilisateur. (par défaut, cela se produit 10% du temps)
51
dotancohen

Envoyez un e-mail au FAI de l'agresseur - Ils le feront Mettez fin à cela

Vous avez un journal de ses heures de création de compte, et les adresses IP utilisées pour vous inscrire, non? Vous avez également un journal de tous ses commentaires harcelants? Envoyez ces journaux à leur FAI .

Vous pouvez trouver le FAI en faisant une recherche IP soit directement avec ARIN à https://whois.arin.net/ui ou un autre service qui les utilise simplement pour un whois. La plupart des utilisateurs auront un fournisseur de services Internet réel pour le propriétaire de l'IP, mais certains (les grandes sociétés généralement) seront propriétaires de l'IP eux-mêmes. Quoi qu'il en soit, vous découvrirez à qui appartient l'IP et à partir de là, vous pouvez les rechercher et obtenir une adresse e-mail d'abus (parfois, ils mettent une adresse e-mail d'abus réelle dans les informations WHOIS, ce qui est génial) à envoyer votre e-mail à. Soyez gentil et courtois avec le FAI. N'écrivez pas un roman épique - restez simple. Quelque chose comme "Cette adresse IP s'est harcelée moi-même et les utilisateurs de mon site Web, veuillez consulter les journaux" suffira. Ils en voient des milliers par jour, ils ne veulent pas lire une histoire sanglante.

J'étais ingénieur réseau chez un FAI. Nous avons reçu d'innombrables rapports de harcèlement pour ce type de comportement. Dès qu'un abonné reçoit l'appel téléphonique, il s'arrête environ 90% du temps. Si cela continue, une action en justice peut s'ensuivre, ce qui signifie que la plupart des FAI prennent des mesures très graves.

Votre agresseur est probablement un enfant vivant à la maison avec ses parents , ce qui signifie que lorsque le compte Internet de ses parents est menacé de se terminer, ils seront incroyablement bouleversé avec lui pour son comportement.

J'ai personnellement pris cette voie et cela fonctionne, même si l'agresseur n'est pas dans votre pays. Les FAI ne prennent PAS gentiment les utilisateurs abusifs sur leur réseau.

Note latérale

Il est possible qu'il utilise un proxy. Cependant, il est très peu probable qu'il ait utilisé un proxy lors de l'inscription initiale, sauf s'il avait pleinement l'intention (à partir du moment où il s'est inscrit) de troller sur votre site Web. Si aucune des adresses IP ne pointe vers un FAI légitime où vous pouvez réellement envoyer un e-mail abusif, essayez de l'envoyer au service proxy qu'il utilise.

Les gens ont cette idée folle que, simplement parce que quelqu'un utilise un proxy, ils sont indétectables. C'est faux. Les services proxy suivent généralement les mêmes règles que tous les autres (bien sûr, il existe des exceptions). Quand ils reçoivent un rapport d'abus, ils s'en occupent comme un FAI.

Sur la très petite chance que cet utilisateur soit derrière un proxy qui ne joue pas à Nice, je suivrais les conseils des autres répondeurs. Sérieusement, c'est tellement rare que la plupart des propriétaires de sites Web ne verront jamais d'attaque de la part de quelqu'un qui semble "indétectable".

30
Nate I

Sur votre question, vous ne mentionnez pas avoir un Captcha. Peut-être que cet utilisateur ennuyeux est un bot? Je suppose que vous avez déjà un captcha et que cet utilisateur est en fait humain.

Mais ... si ce n'est pas le cas, je recommanderais:

reCAPTCHA

Utilise le service Web Google reCAPTCHA pour améliorer le système CAPTCHA et protéger les adresses e-mail.

enter image description here

17
No Sssweat

Hellban/shadowban

Comme empêcher une personne de créer de nouveaux comptes pour remplacer ceux bloqués est presque impossible, une solution quelque peu populaire à ce problème est le soi-disant hellban ( http://www.urbandictionary.com/define.php?term= hellban ) ou shadowban, où vous implémentez une fonctionnalité qui isole certains comptes de tout le monde sans qu'il soit évident qu'ils ont été interdits.

Par exemple, vous vous assureriez qu'ils ont l'impression que leur expérience est authentique et qu'ils peuvent continuer à utiliser les mêmes comptes, mais conditionnez que leurs publications ou activités ne soient visibles que par les comptes interdits par l'enfer et les comptes (ou non connectés) dans des situations) qui partagent IP et/ou cookies avec le compte hellbanned. Si l'utilisateur continue de troller mais n'obtient aucune réponse, il partira finalement.

9
Peteris

À la suggestion de No Sssweat, je mets cela comme une réponse au lieu d'un commentaire pour que plus de gens le voient.

Drupal.org/project/misery fait un très bon travail pour ennuyer la merde d'un utilisateur avec environ huit méthodes différentes. Temps morts aléatoires, déconnexions, redirections aléatoires, etc. et la fréquence est variable.

Une version facile de Nice écrit par dotancohen pour résoudre le problème.

7
Niall Murphy

Que diriez-vous d'utiliser un deuxième facteur? Dans votre inscription, dites que vous enverrez un SMS à leur téléphone ou à un e-mail et demandez-leur de confirmer leur inscription en cliquant sur un lien et en renvoyant les informations. Vous aurez plus de mal à usurper identifiant que l'adresse IP et il peut être plus facile de le filtrer de cette façon. De toute évidence, il faudra un peu de script ...

6
Blackbeagle

C'est en fait impossible.

Vous ne pouvez pas empêcher une personne de s'inscrire encore et encore. La seule chose que vous pouvez faire est de durcir le processus d'inscription et de double/triple vérifier leur identifiant (via l'adresse e-mail et compte Google et compte Facebook et = Compte LinkedIn et numéro de téléphone, etc.) et corréler chaque personne avec un identifiant spécifique regroupant tous ces détails.

La personne spécifique peut soit choisir un autre réseau via un proxy Web, créer de nombreux @email, ouvrir plusieurs comptes facebook/google/LinkedIn, etc., mais vous ne pourrez jamais empêcher cette personne de s'enregistrer à nouveau (sauf si vous vérifiez son ADN).

Votre seul choix est de durcir le processus d'inscription.

5
Auzias

Comme suggéré par No Sssweat, vous pouvez utiliser reCAPTCHA. Mais si vous ne voulez pas déranger les utilisateurs légitimes, vous pouvez essayer le module Honeypot . Il donne la possibilité d'avoir un champ supplémentaire qui ne doit pas être rempli (les robots AFAIK peuvent remplir tous les champs) ou avoir une restriction de temps.

La documentation se lit comme suit:

Honeypot utilise à la fois les méthodes honeypot et timestamp pour dissuader les robots de spam de remplir des formulaires sur votre Drupal (lire la suite ici). Ces méthodes sont efficaces contre de nombreux robots de spam et ne sont pas aussi intrusives que les CAPTCHA ou d'autres méthodes qui punissent l'utilisateur [YouTube].

Une autre option est le module Spambot , il empêche le spam en vérifiant les tentatives d'enregistrement par rapport au Stop Forum Spam.

Spambot protège le formulaire d'inscription de l'utilisateur contre les spammeurs et les spambots en vérifiant les tentatives d'enregistrement par rapport à la base de données en ligne Stop Forum Spam (www.stopforumspam.com). Il ajoute également des fonctionnalités utiles pour gérer les comptes de spam.

4
Suresh R

Il y a une réponse à la question - bien que la communauté puisse trouver cette offensive. Je ne sais pas pourquoi, à moindre coût, que le chemin n'a pas été emprunté plus souvent.

Envoyez une lettre de cesser et de s'abstenir à la personne qui empiète sur votre site et qui enfreint le titre XVIII du Code américain, Altération des ordinateurs, fraude et abus.

S'ils ne cessent pas, empochez l'argent et poursuivez. Au milieu des années 1990, j'ai eu le premier cas dans le WDMO où le seul FAI de la région de Kansas City a été piraté par 3 adolescents. J'ai contacté les familles (elles avaient rooté l'un des serveurs et étaient assez stupides pour stocker leur application pour rejoindre les groupes "Warez" avec leurs vrais noms et adresses dans un sous-répertoire caché) et leur ai demandé d'empêcher les adolescents de le faire. Ils ont refusé.

Dans une plainte de 54 pages, j'ai dû expliquer: FAI, Internet, accès excessif, etc. à un juge nouvellement nommé.

J'étais plus qu'un défenseur, un de mes comptes avait été consulté (Dieu merci, pas un compte client - La liste Rust) et j'ai été cochée. J'ai facturé les parents (seule façon de aller là où les accusés étaient mineurs dans une action civile) et a déclaré que les parents avaient placé un instrument dangereux entre les mains des mineurs sans surveillance adéquate et que les mineurs avaient procédé au transfert de logiciels volés et de porno pour enfants (Yep, 16 ans les garçons qui prennent des photos de leur copine de 16 ans sont du "porno pour enfants"). J'ai respecté les politiques du propriétaire et j'ai eu un remède que les tribunaux à l'époque n'avaient même pas envisagé: une interdiction à vie de l'utilisation des ordinateurs pour les adolescents.

Il a été réglé dans la semaine suivant le transfert de la découverte.

Vous avez tout essayé: martelez cette petite merde avec une walletectomie. Soyez prudent de choisir un avocat qui sait ce que c'est et non un associé à une "grande entreprise" où vous serez facturé à mort.

Réfléchissez à la façon dont une ordonnance du tribunal empêchant le crétin d'accéder à votre site pourrait fonctionner: S/Il est interdit - vous trouvez une adresse IP de son/sa violation de l'ordonnance du tribunal - l'envoyer à votre avocat et il/elle dépose une requête auprès de la Cour montrant violation de l'ordonnance et la Cour répondra par une ordonnance de justification pour laquelle le défendeur ne devrait pas être tenu pour outrage au tribunal.

Une attaque provenant d'autres sites/adresses IP commence à arriver - dites à votre avocat - et la réponse peut inclure la mise en miroir des ordinateurs des accusés, une injonction empêchant le défendeur de tout accès à Internet et, en constatant que le défendeur a violé l'ordre par procuration , la Cour imposera des sanctions.

En fin de compte, le crétin s'est peut-être limité à être à jamais bloqué sur Internet. Si vous êtes vraiment énervé après tout cela et que vous voulez être certain que le défendeur est hors Internet, engagez un PI pour suivre le défendeur pendant une semaine ou dix jours (pas bon marché) et s'il/elle accède à Internet chez un Starbucks - ou chez McD vous en avez: retournez voir le juge.

L'ordonnance ultime est au-delà de toute croyance et ne se produira qu'avec des preuves accablantes que le défendeur a régulièrement violé les ordonnances du tribunal: pas de téléphones intelligents, pas de VOIP, pas de câble ou de télévision par satellite (Internet est disponible et il/elle a montré un mépris total pour le la loi, donc rien qu'ils ne peuvent pirater pour y accéder n'est autorisé), pas d'Internet (ce serait bien si c'était une interdiction à vie - probablement pas), pas d'Internet des objets et, finalement, pas d'appareils informatiques.

Si l'accusé gagnait sa vie dans le secteur de la technologie - ils ont des fossés à creuser et des hamburgers à retourner.

Voilà comment mettre fin à cela avec l'option nucléaire.

3
George R. O'Connor

J'aime le modèle de la misère, mais j'ajouterais à l'envoyer au hasard sur une page avec des messages très gênants et à d'autres moments l'envoyer vers des sites pornographiques vraiment mauvais. Tout ce qui pourrait lui causer des ennuis ou être embarrassé s'il est en public.

2
jerry

J'ai écrit un module spécialement pour ce genre de situations. Il s'appelle Spaces Enforced et peut être trouvé ici , et fonctionne en bloquant toute personne inscrite dont le nom ne contient pas au moins 1 espace. Il peut être configuré davantage et vous pouvez sélectionner le personnage qui doit apparaître combien de fois. Il a également un taux de succession de près de 100%

2
Kartagis