Protégez votre application Web avec Google reCaptcha sur Ruby on Rails

« Spam » pourrait être l'un des mots les plus redoutables pour un propriétaire d'application Web. Surtout pour une application avec beaucoup de contenu généré par les utilisateurs, cela pourrait être un cauchemar à gérer. Pour tenir les spammeurs à distance, un service gratuit de Google appelé reCaptcha pourrait être utilisé. Un service destiné à protéger le site Web contre le spam et les abus et à permettre à vos utilisateurs de s'attester sans avoir à résoudre un captcha, Google reCaptcha protège l'application d'une attaque par déni de service en empêchant l'automatisation des soumissions de formulaires. Meilleure solution aux captchas d'images existants, Google reCaptcha est facile à utiliser et est doté de fonctionnalités de sécurité avancées. Grâce à un moteur d'analyse des risques avancé, reCaptcha empêche les robots automatisés de se lancer dans des activités de spam pour votre application. En outre, il est beaucoup plus convivial que les captchas d’image précédents. Avant de pouvoir ajouter Google reCaptcha à votre application, vous devez suivre ces étapes : 1) Obtenez les informations d'identification 2) Ajoutez des balises recaptcha 3) Pour gérer la vérification, créez une classe recaptcha 4) Dans le contrôleur d'enregistrement, ajoutez la méthode verify_recaptcha Installation Étape 1:- Ajoutez ce qui suit à votre fichier gem : gem "recaptcha", :require => "recaptcha/rails" Étape 2:- Connectez-vous à http://developers.google.com, connectez-vous à votre compte Gmail et recherchez « recaptcha ». Cliquer sur "Inscrivez-vous pour une clé API" lien. Vérifiez le secret et les clés du site. Comme son nom l'indique, la clé secrète doit être conservée dans un endroit plus sûr, tandis que la clé du site est la clé publique utilisée pour l'authentification auprès de Google. Enregistrez le nom de votre site avec votre compte Google pour récupérer la clé publique et privée qui sera utilisée ultérieurement sur l'application. Une fois l’enregistrement terminé, vous obtiendrez la clé publique et la clé privée. Côté client, la clé publique est envoyée au service recaptcha pour demander un nouveau captcha. La clé privée est appliquée côté serveur pour vérifier si la bonne valeur est saisie. Enregistrez-vous ensuite pour obtenir une clé API reCAPTCHA et ajoutez-la aux fichiers de configuration de votre environnement : # mettez-la dans development.rb et dans production.rb. ENV_RECAPTCHA_PUBLIC_KEY= 'votre-clé-publique' ENV_RECAPTCHA_PRIVATE_KEY= 'votre-clé-privée' Étape 3:- Créez un fichier nommé recaptcha.rb dans config/initializers pour configurer les paramètres recaptcha. Recaptcha.configure faire |config| config.public_key = 'ENV_RECAPTCHA_PUBLIC_KEY' config.private_key = 'ENV_RECAPTCHA_PRIVATE_KEY' config.proxy = 'http://www.google.com/recaptcha/api/verify' end Étape 4:- Voir Le Captcha Gem aide à restituer la véritable boîte de captcha. C'est aussi simple que de mettre ce qui suit dans votre vue à l'endroit où vous souhaitez que le captcha apparaisse : <%= raw recaptcha_tags %> Si vous utilisez SSL, utilisez plutôt ceci : <%= recaptcha_tags :ssl => true %>, L'option SSL garantit que nous envoyons une requête https au service recaptcha. Étape 5 : - Manette
Captcha Gem fournit une autre méthode d'assistance qui publie sur le serveur API reCaptcha pour vérifier si la soumission est correcte. Si tel est le cas, la méthode renvoie true, sinon, elle ajoutera un message d'erreur personnalisé indiquant que le recaptcha est erroné à l'instance de modèle. Voici le code de base tel que vous pourriez l'avoir dans l'action de création de votre contrôleur : - Dans les contrôleurs de périphérique, app/controllers/registrations_controller.rb, insérez le code suivant : require 'recaptcha.rb' before_action :verify_recaptcha, uniquement : [: create] def verify_recaptcha réponse = Recaptcha.verify(params) session[:sign_up] = params[:user].sauf(:password, :password_confirmation, :remoteip) si réponse.code == 200 si réponse['succès'] flash [:notice] = « Vérification Recaptcha réussie. » else redirect_to new_user_registration_path(user: params[:user]), alerte : "Erreur de vérification Recaptcha." end else redirect_to new_user_registration_path(user: params[:user]), alerte : « Erreur de connexion HTTP. » fin fin
La session[:sign_up] est conservée car le formulaire d'inscription peut être pré-rempli si la vérification échoue.

Abonnez-vous pour les dernières mises à jour

Articles Similaires

Laissez un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

fr_FRFrench