2011-03-15 3 views
26

Il y a beaucoup de plugins captchas dans Rails ainsi que de nombreux types de solutions pour empêcher les spams et les inondations. Donc, ce n'est pas seulement la question de Rails.rails - Choix du plugin captcha

Voyons voir quels types de plug-ins avons-nous:

1. Image classique captcha (zendesk's Captcha, Simple_captcha, Validates_captcha, winton's Captcha, Raptcha).

positif:

  • peut-elle être efficace pour empêcher Décrypter automatique (pas sûr Simple_captcha, mais il semble que les captchas de est à la fois Zendesk et Winton ne parviennent pas, car ils utilisent des images pré-générées (au lieu de sur demande), ainsi nos bots de spam éventuels peuvent être appris sur ces images).

négatif:

  • Exigent la table DB (. Au moins simple Captcha Pas si mal, mais ont-ils le nettoyer après usage?).
  • Exiger RMagick ou similaire (pas si réel pour moi, comme je l'ai déjà sur mon site).
  • Échec déchiffrement manuel ($ 2/1000 images que je connais).
  • Ennuyeux pour les utilisateurs et peut nuire aux taux de conversion.

2. ReCaptcha (Recaptcha, rack recaptcha).

positif:

  • peut être efficace pour empêcher Décrypter automatique.
  • Ne nécessite pas de table Rmagick et DB.

négatif:

  • Faire des api-appels vers le site 3ème partie.
  • Echec du décryptage manuel.
  • Encore plus ennuyeux que le précédent.

3. pots de miel (captcha négatif, Trap_door, Reverse_captcha, Honeypot-captcha, Bouncy_bots, invisible_captcha).

positif:

  • utilisateur ne connaît pas captcha presense.
  • Ne nécessite pas de table Rmagick et DB.

négatif:

  • peut échouer Décrypter automatique (ce qu'il ya des bots qui peuvent reconnaître ce plug-ins?).
  • Echec du décryptage manuel.

4. Texte base (Humanizer, Brain_buster, Gotcha).

positif:

  • Ne pas besoin rmagick et une table DB (sauf Brain_buster).

négatif:

  • peut échouer Décrypter automatique.
  • Echec du décryptage manuel.
  • Peu gênant (peut être localisé).

5. Autres (Acts_as_snook)

positif:

  • utilisateur ne sait pas captcha presense.
  • Ne nécessite pas de table Rmagick et DB.

négatif:

Je ne sais pas si tout parce qu'il est très inhabituel. Mais je pense que cela peut causer des problèmes en cas d'inondation, car cela peut nécessiter une modération de poste à certains moments.

6. Solutions de type Akismet (ne connaissent pas leur efficacité).

positif:

  • utilisateur ne connaît pas captcha presense.
  • Ne nécessite pas de table Rmagick et DB.

négatif:

  • Faire des api-appels vers le site 3ème partie.
  • Fournissez les détails de l'utilisateur sur un site tiers (très, très mauvais).

Je devrais aussi dire quelques mots sur mon site.Les utilisateurs peuvent voir le formulaire protégé seulement après une requête ajax (après avoir mis quelque chose au panier par exemple). Les robots modernes ont-ils la capacité de faire des requêtes ajax et de stocker des cookies?

+0

J'ai une application Rails hébergé sur Heroku, je aimerait utiliser captcha pour le formulaire d'inscription de l'utilisateur. Quelle solution viable sur la production? Je ne peux pas lancer RMagick sur Heroku, n'est-ce pas? – Myna

+0

J'ai utilisé une logique simple pour filtrer les formes de rails de spam et il fonctionne très bien sur plusieurs applications de production. C'est comme un pot de miel, mais un peu différent :) Récemment j'ai déplacé ce plugin dans gem [protected_form] (https://github.com/KELiON/protected_form), jetez un coup d'œil. Ce serait génial d'avoir des commentaires. –

Répondre

6

L'inondation est un problème différent du spam. Vous devriez certainement construire la logique autour de la limitation de débit dans votre application, vous pouvez le faire en utilisant la validation pour vérifier que l'utilisateur n'a pas, par exemple, placé plus de 2 commandes dans les 15 dernières minutes.

En ce qui concerne les captchas, l'un des plugins que vous sélectionnez va très bien. Je ne penserais pas à devoir installer RMagick comme positif ou négatif, ce n'est vraiment pas si difficile de travailler. Si c'était moi qui choisissais, mon premier instinct serait d'aller avec recaptcha, c'est le moins ennuyeux de tous. Le spam est un autre problème, il est souvent entré par les utilisateurs humains qui peuvent contourner votre captcha. Akismet est idéal pour attraper le spam, jetez un coup d'œil, vous pouvez l'utiliser en conjonction avec quelque chose comme recaptcha. En fin de compte, les robots modernes sont très sophistiqués. Beaucoup plus sophistiqué que nous ne l'attendons probablement. Ils peuvent entièrement automatiser les navigateurs, utiliser l'OCR pour lire du texte captcha et générer du contenu spammé qui contournera même les filtres les plus sophistiqués. Cela dit, il ne s'agit pas de «stopper tous les spams/robots», mais de faire en sorte que la barrière à l'entrée soit suffisamment élevée pour que cela ne vaille pas la peine pour l'utilisateur occasionnel.

+0

Eh bien, je vais également utiliser un de ces plugins pour l'enregistrement des utilisateurs (sans notifications par email). Donc, je peux seulement regarder IP de l'utilisateur pour éviter les inondations. Mais comme on le voit aujourd'hui, beaucoup de botnets le font. Donc, le blocage d'IP est une mauvaise idée, n'est-ce pas? – sunki

+0

Les adresses IP des utilisateurs changent, ou ils peuvent avoir un ordinateur de travail et un ordinateur personnel. – jonnii

+0

Je veux dire bloquer l'adresse IP au lieu de l'enregistrer pour l'utilisateur particulier. Les adresses IP peuvent être bloquées pendant un certain temps, 1 heure par exemple. – sunki

5

Bonne analyse des plugins existants.

Les robots modernes sont très sophistiqués, et leurs développeurs sont très bien payés, donc ils essaient toujours de contourner la dernière défense. Pour cette raison, je pense qu'il est bon de s'en tenir à une option qui est activement maintenue et travaillée, comme ReCaptcha. Je pense aussi que les utilisateurs comprennent l'interface et se sentent en sécurité en sachant que vous prenez des mesures pour protéger leurs données.

J'ai dû passer en revue toutes les options de captchas de rails pour un projet, et a écrit un exemple d'application pour mon client pour tester et essayer. Ils étaient tous assez faciles à utiliser et à configurer, et j'aime utiliser heroku comme un banc d'essai pour obtenir quelque chose mis en place rapidement, et laisser un client le tester. J'ai aussi écrit une partie de mon expérience et gotchas sur mon blog RailsPerformance.com

Il peut y avoir de nouveaux plugins, toujours bon de voir ce que la tendance est www.ruby-toolbox.com

+0

Belle page de démonstration! Le lien reCaptcha tout en haut est cassé, au cas où vous vous en soucieriez. – Clay

+0

@clay Merci. J'ai réparé ce lien brisé, et je l'ai fait pour qu'il ne se casse plus. –