{"id":7617,"date":"2016-01-22T18:10:35","date_gmt":"2016-01-22T18:10:35","guid":{"rendered":"https:\/\/dev.railscarma.com\/protect-your-web-application-with-google-recaptcha-on-ruby-on-rails\/"},"modified":"2021-06-06T12:57:36","modified_gmt":"2021-06-06T12:57:36","slug":"protegez-votre-application-web-avec-google-recaptcha-sur-ruby-on-rails","status":"publish","type":"post","link":"https:\/\/www.railscarma.com\/fr\/blog\/articles-techniques\/protegez-votre-application-web-avec-google-recaptcha-sur-ruby-on-rails\/","title":{"rendered":"Prot\u00e9gez votre application Web avec Google reCaptcha sur Ruby on Rails"},"content":{"rendered":"<div data-elementor-type=\"wp-post\" data-elementor-id=\"7617\" class=\"elementor elementor-7617\" data-elementor-post-type=\"post\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-30d8ee9c elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"30d8ee9c\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-7c112b9\" data-id=\"7c112b9\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-722ef3d8 elementor-widget elementor-widget-text-editor\" data-id=\"722ef3d8\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\u00ab\u00a0Spam\u00a0\u00bb pourrait \u00eatre l&#039;un des mots les plus redoutables pour un propri\u00e9taire d&#039;application Web. Surtout pour une application avec beaucoup de contenu g\u00e9n\u00e9r\u00e9 par les utilisateurs, cela pourrait \u00eatre un cauchemar \u00e0 g\u00e9rer. Pour tenir les spammeurs \u00e0 distance, un service gratuit de Google appel\u00e9 reCaptcha pourrait \u00eatre utilis\u00e9. Un service destin\u00e9 \u00e0 prot\u00e9ger le site Web contre le spam et les abus et \u00e0 permettre \u00e0 vos utilisateurs de s&#039;attester sans avoir \u00e0 r\u00e9soudre un captcha, Google reCaptcha prot\u00e8ge l&#039;application d&#039;une attaque par d\u00e9ni de service en emp\u00eachant l&#039;automatisation des soumissions de formulaires. Meilleure solution aux captchas d&#039;images existants, Google reCaptcha est facile \u00e0 utiliser et est dot\u00e9 de fonctionnalit\u00e9s de s\u00e9curit\u00e9 avanc\u00e9es. Gr\u00e2ce \u00e0 un moteur d&#039;analyse des risques avanc\u00e9, reCaptcha emp\u00eache les robots automatis\u00e9s de se lancer dans des activit\u00e9s de spam pour votre application. En outre, il est beaucoup plus convivial que les captchas d\u2019image pr\u00e9c\u00e9dents. Avant de pouvoir ajouter Google reCaptcha \u00e0 votre application, vous devez suivre ces \u00e9tapes\u00a0: 1) Obtenez les informations d&#039;identification 2) Ajoutez des balises recaptcha 3) Pour g\u00e9rer la v\u00e9rification, cr\u00e9ez une classe recaptcha 4) Dans le contr\u00f4leur d&#039;enregistrement, ajoutez la m\u00e9thode verify_recaptcha\n\n<strong>Installation<\/strong>\n\n<strong>\u00c9tape 1:-<\/strong>\n\nAjoutez ce qui suit \u00e0 votre fichier gem\u00a0: gem &quot;recaptcha&quot;, :require =&gt; &quot;recaptcha\/rails&quot;\n\n<strong>\u00c9tape 2:-<\/strong>\n\nConnectez-vous \u00e0 http:\/\/developers.google.com, connectez-vous \u00e0 votre compte Gmail et recherchez \u00ab\u00a0recaptcha\u00a0\u00bb. Cliquer sur &quot;<strong>Inscrivez-vous pour une cl\u00e9 API<\/strong>&quot; lien. V\u00e9rifiez le secret et les cl\u00e9s du site. Comme son nom l&#039;indique, la cl\u00e9 secr\u00e8te doit \u00eatre conserv\u00e9e dans un endroit plus s\u00fbr, tandis que la cl\u00e9 du site est la cl\u00e9 publique utilis\u00e9e pour l&#039;authentification aupr\u00e8s de Google. Enregistrez le nom de votre site avec votre compte Google pour r\u00e9cup\u00e9rer la cl\u00e9 publique et priv\u00e9e qui sera utilis\u00e9e ult\u00e9rieurement sur l&#039;application. Une fois l\u2019enregistrement termin\u00e9, vous obtiendrez la cl\u00e9 publique et la cl\u00e9 priv\u00e9e. C\u00f4t\u00e9 client, la cl\u00e9 publique est envoy\u00e9e au service recaptcha pour demander un nouveau captcha. La cl\u00e9 priv\u00e9e est appliqu\u00e9e c\u00f4t\u00e9 serveur pour v\u00e9rifier si la bonne valeur est saisie. Enregistrez-vous ensuite pour obtenir une cl\u00e9 API reCAPTCHA et ajoutez-la aux fichiers de configuration de votre environnement\u00a0: # mettez-la dans development.rb et dans production.rb.\n\n<strong>ENV_RECAPTCHA_PUBLIC_KEY<\/strong>= &#039;votre-cl\u00e9-publique&#039;\n\n<strong>ENV_RECAPTCHA_PRIVATE_KEY<\/strong>= &#039;votre-cl\u00e9-priv\u00e9e&#039;\n\n<strong>\u00c9tape 3:-<\/strong>\n\nCr\u00e9ez un fichier nomm\u00e9 recaptcha.rb dans config\/initializers pour configurer les param\u00e8tres recaptcha. Recaptcha.configure faire |config| config.public_key = &#039;ENV_RECAPTCHA_PUBLIC_KEY&#039; config.private_key = &#039;ENV_RECAPTCHA_PRIVATE_KEY&#039; config.proxy = &#039;http:\/\/www.google.com\/recaptcha\/api\/verify&#039; end\n\n<strong>\u00c9tape 4:-<\/strong>\n\n<strong>Voir<\/strong>\n\nLe Captcha Gem aide \u00e0 restituer la v\u00e9ritable bo\u00eete de captcha. C&#039;est aussi simple que de mettre ce qui suit dans votre vue \u00e0 l&#039;endroit o\u00f9 vous souhaitez que le captcha apparaisse\u00a0: &lt;%= raw recaptcha_tags %&gt; Si vous utilisez SSL, utilisez plut\u00f4t ceci\u00a0: &lt;%= recaptcha_tags :ssl =&gt; true %&gt;, L&#039;option SSL garantit que nous envoyons une requ\u00eate https au service recaptcha.\n\n<strong>\u00c9tape 5\u00a0:\u00a0-<\/strong>\n\n<strong>Manette<\/strong>\n<blockquote>Captcha Gem fournit une autre m\u00e9thode d&#039;assistance qui publie sur le serveur API reCaptcha pour v\u00e9rifier si la soumission est correcte. Si tel est le cas, la m\u00e9thode renvoie true, sinon, elle ajoutera un message d&#039;erreur personnalis\u00e9 indiquant que le recaptcha est erron\u00e9 \u00e0 l&#039;instance de mod\u00e8le. Voici le code de base tel que vous pourriez l&#039;avoir dans l&#039;action de cr\u00e9ation de votre contr\u00f4leur : - Dans les contr\u00f4leurs de p\u00e9riph\u00e9rique, app\/controllers\/registrations_controller.rb, ins\u00e9rez le code suivant : require &#039;recaptcha.rb&#039; before_action :verify_recaptcha, uniquement : [: create] def verify_recaptcha r\u00e9ponse = Recaptcha.verify(params) session[:sign_up] = params[:user].sauf(:password, :password_confirmation, :remoteip) si r\u00e9ponse.code == 200 si r\u00e9ponse[&#039;succ\u00e8s&#039;] flash [:notice] = \u00ab\u00a0V\u00e9rification Recaptcha r\u00e9ussie.\u00a0\u00bb else redirect_to new_user_registration_path(user: params[:user]), alerte\u00a0: &quot;Erreur de v\u00e9rification Recaptcha.&quot; end else redirect_to new_user_registration_path(user: params[:user]), alerte\u00a0: \u00ab\u00a0Erreur de connexion HTTP.\u00a0\u00bb fin fin<\/blockquote>\nLa session[:sign_up] est conserv\u00e9e car le formulaire d&#039;inscription peut \u00eatre pr\u00e9-rempli si la v\u00e9rification \u00e9choue.\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-4c97ecc6 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"4c97ecc6\" data-element_type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-1b0bf4d9\" data-id=\"1b0bf4d9\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-699577c elementor-widget elementor-widget-heading\" data-id=\"699577c\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Abonnez-vous pour les derni\u00e8res mises \u00e0 jour<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-11c21e90 elementor-widget elementor-widget-shortcode\" data-id=\"11c21e90\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">\t\t\t\t\t<script type=\"text\/javascript\">\n\t\t\t\t\t\tvar gCaptchaSibWidget;\n                        var onloadSibCallbackInvisible = function () {\n\n                            var element = document.getElementsByClassName('sib-default-btn');\n                            var countInvisible = 0;\n                            var indexArray = [];\n                            jQuery('.sib-default-btn').each(function (index, el) {\n                                if ((jQuery(el).attr('id') == \"invisible\")) {\n                                    indexArray[countInvisible] = index;\n                                    countInvisible++\n                                }\n                            });\n\n                            jQuery('.invi-recaptcha').each(function (index, el) {\n                                grecaptcha.render(element[indexArray[index]], {\n                                    'sitekey': jQuery(el).attr('data-sitekey'),\n                                    'callback': sibVerifyCallback,\n                                });\n                            });\n                        };\n\t\t\t\t\t<\/script>\n\t\t\t\t\t                <script src=\"https:\/\/www.google.com\/recaptcha\/api.js?onload=onloadSibCallbackInvisible&render=explicit\" async defer><\/script>\n\t\t\t\t\n\t\t\t<form id=\"sib_signup_form_1\" method=\"post\" class=\"sib_signup_form\" action=\"\">\n\t\t\t\t<div class=\"sib_loader\" style=\"display:none;\"><img\n\t\t\t\t\t\t\tsrc=\"https:\/\/www.railscarma.com\/wp-includes\/images\/spinner.gif\" alt=\"chargeur\"><\/div>\n\t\t\t\t<input type=\"hidden\" name=\"sib_form_action\" value=\"subscribe_form_submit\">\n\t\t\t\t<input type=\"hidden\" name=\"sib_form_id\" value=\"1\">\n                <input type=\"hidden\" name=\"sib_form_alert_notice\" value=\"Please fill out this field\">\n                <input type=\"hidden\" name=\"sib_form_invalid_email_notice\" value=\"Your email address is invalid\">\n                <input type=\"hidden\" name=\"sib_security\" value=\"4e8fac8d42\">\n\t\t\t\t<div class=\"sib_signup_box_inside_1\">\n\t\t\t\t\t<div style=\"\/*display:none*\/\" class=\"sib_msg_disp\">\n\t\t\t\t\t<\/div>\n                                            <div id=\"sib_captcha_invisible\" class=\"invi-recaptcha\" data-sitekey=\"6LdikOAaAAAAAJ6SWrrKVQrtw7TQpQAEnv0HS0G3\"><\/div>\n                    \t\t\t\t\t<p class=\"sib-email-area\">\r\n    <label class=\"sib-email-area\"><\/label>\r\n    <input type=\"email\" class=\"sib-email-area\" name=\"email\" required=\"required\" placeholder=\"Adresse e-mail\">\r\n<\/p>\r\n<p class=\"sib-NAME-area\">\r\n    <label class=\"sib-NAME-area\"><\/label>\r\n    <input type=\"text\" class=\"sib-NAME-area\" name=\"NAME\" placeholder=\"Nom\">\r\n<\/p>\r\n<p>\r\n    <input type=\"submit\" id=\"invisible\" class=\"sib-default-btn\" value=\"S&#039;abonner\">\r\n<\/p>\t\t\t\t<\/div>\n\t\t\t<input type=\"hidden\" name=\"trp-form-language\" value=\"fr\"\/><\/form>\n\t\t\t<style>\n\t\t\t\tform#sib_signup_form_1 p.sib-alert-message {\n    padding: 6px 12px;\n    margin-bottom: 20px;\n    border: 1px solid transparent;\n    border-radius: 4px;\n    -webkit-box-sizing: border-box;\n    -moz-box-sizing: border-box;\n    box-sizing: border-box;\n}\nform#sib_signup_form_1 p.sib-alert-message-error {\n    background-color: #f2dede;\n    border-color: #ebccd1;\n    color: #a94442;\n}\nform#sib_signup_form_1 p.sib-alert-message-success {\n    background-color: #dff0d8;\n    border-color: #d6e9c6;\n    color: #3c763d;\n}\nform#sib_signup_form_1 p.sib-alert-message-warning {\n    background-color: #fcf8e3;\n    border-color: #faebcc;\n    color: #8a6d3b;\n}\n\t\t\t<\/style>\n\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t  <div class=\"related-post slider\">\r\n        <div class=\"headline\">Articles Similaires<\/div>\r\n    <div class=\"post-list owl-carousel\">\r\n\r\n            <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"Gemme de Kaminari\" href=\"https:\/\/www.railscarma.com\/fr\/blog\/articles-techniques\/joyau-kaminari\/?related_post_from=37277\">\r\n\r\n      <img decoding=\"async\" width=\"800\" height=\"300\" src=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2023\/04\/kaminari-gem.jpg\" class=\"attachment-full size-full wp-post-image\" alt=\"joyau kaminari\" srcset=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2023\/04\/kaminari-gem.jpg 800w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2023\/04\/kaminari-gem-300x113.jpg 300w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2023\/04\/kaminari-gem-768x288.jpg 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\r\n\r\n    <\/a>\r\n  <\/div>\r\n\r\n  <a class=\"title post_title\"  title=\"Gemme de Kaminari\" href=\"https:\/\/www.railscarma.com\/fr\/blog\/articles-techniques\/joyau-kaminari\/?related_post_from=37277\">\r\n        Gemme de Kaminari  <\/a>\r\n\r\n        <\/div>\r\n              <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"Pourquoi engager des d\u00e9veloppeurs Ruby on Rails en 2026 ?\" href=\"https:\/\/www.railscarma.com\/fr\/blog\/ror\/pourquoi-embaucher-des-developpeurs-ruby-on-rails\/?related_post_from=30627\">\r\n\r\n      <img decoding=\"async\" width=\"800\" height=\"300\" src=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2019\/01\/why-to-hire-ruby-on-rails-developers-in-2022.jpg\" class=\"attachment-full size-full wp-post-image\" alt=\"pourquoi embaucher des d\u00e9veloppeurs Ruby on Rails en 2022\" srcset=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2019\/01\/why-to-hire-ruby-on-rails-developers-in-2022.jpg 800w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2019\/01\/why-to-hire-ruby-on-rails-developers-in-2022-300x113.jpg 300w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2019\/01\/why-to-hire-ruby-on-rails-developers-in-2022-768x288.jpg 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\r\n\r\n    <\/a>\r\n  <\/div>\r\n\r\n  <a class=\"title post_title\"  title=\"Pourquoi engager des d\u00e9veloppeurs Ruby on Rails en 2026 ?\" href=\"https:\/\/www.railscarma.com\/fr\/blog\/ror\/pourquoi-embaucher-des-developpeurs-ruby-on-rails\/?related_post_from=30627\">\r\n        Pourquoi engager des d\u00e9veloppeurs Ruby on Rails en 2026 ?  <\/a>\r\n\r\n        <\/div>\r\n              <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"R\u00e9cup\u00e9ration de donn\u00e9es dans Rails en traitant CSV\" href=\"https:\/\/www.railscarma.com\/fr\/blog\/articles-techniques\/grattage-de-donnees-dans-les-rails-en-traitant-csv\/?related_post_from=31591\">\r\n\r\n      <img decoding=\"async\" width=\"800\" height=\"300\" src=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/09\/DATA-SCRAPING-IN-RAILS-BY-PROCESSING-CSV.png\" class=\"attachment-full size-full wp-post-image\" alt=\"\" srcset=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/09\/DATA-SCRAPING-IN-RAILS-BY-PROCESSING-CSV.png 800w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/09\/DATA-SCRAPING-IN-RAILS-BY-PROCESSING-CSV-300x113.png 300w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/09\/DATA-SCRAPING-IN-RAILS-BY-PROCESSING-CSV-768x288.png 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\r\n\r\n    <\/a>\r\n  <\/div>\r\n\r\n  <a class=\"title post_title\"  title=\"R\u00e9cup\u00e9ration de donn\u00e9es dans Rails en traitant CSV\" href=\"https:\/\/www.railscarma.com\/fr\/blog\/articles-techniques\/grattage-de-donnees-dans-les-rails-en-traitant-csv\/?related_post_from=31591\">\r\n        R\u00e9cup\u00e9ration de donn\u00e9es dans Rails en traitant CSV  <\/a>\r\n\r\n        <\/div>\r\n              <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"Passer des appels vocaux via les applications Web Ruby on Rails\" href=\"https:\/\/www.railscarma.com\/fr\/blog\/articles-techniques\/passer-des-appels-vocaux-via-les-applications-web-ruby-on-rails\/?related_post_from=31309\">\r\n\r\n      <img decoding=\"async\" width=\"800\" height=\"300\" src=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/07\/MAKE-VOICE-CALLS-THROUGH-RUBY-ON-RAILS-WEB-APPLICATIONS.png\" class=\"attachment-full size-full wp-post-image\" alt=\"\" srcset=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/07\/MAKE-VOICE-CALLS-THROUGH-RUBY-ON-RAILS-WEB-APPLICATIONS.png 800w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/07\/MAKE-VOICE-CALLS-THROUGH-RUBY-ON-RAILS-WEB-APPLICATIONS-300x113.png 300w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/07\/MAKE-VOICE-CALLS-THROUGH-RUBY-ON-RAILS-WEB-APPLICATIONS-768x288.png 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\r\n\r\n    <\/a>\r\n  <\/div>\r\n\r\n  <a class=\"title post_title\"  title=\"Passer des appels vocaux via les applications Web Ruby on Rails\" href=\"https:\/\/www.railscarma.com\/fr\/blog\/articles-techniques\/passer-des-appels-vocaux-via-les-applications-web-ruby-on-rails\/?related_post_from=31309\">\r\n        Passer des appels vocaux via les applications Web Ruby on Rails  <\/a>\r\n\r\n        <\/div>\r\n      \r\n  <\/div>\r\n\r\n  <script>\r\n      <\/script>\r\n  <style>\r\n    .related-post {}\r\n\r\n    .related-post .post-list {\r\n      text-align: left;\r\n          }\r\n\r\n    .related-post .post-list .item {\r\n      margin: 10px;\r\n      padding: 10px;\r\n          }\r\n\r\n    .related-post .headline {\r\n      font-size: 14px !important;\r\n      color: #999999 !important;\r\n          }\r\n\r\n    .related-post .post-list .item .post_thumb {\r\n      max-height: 220px;\r\n      margin: 10px 0px;\r\n      padding: 0px;\r\n      display: block;\r\n          }\r\n\r\n    .related-post .post-list .item .post_title {\r\n      font-size: 14px;\r\n      color: #000000;\r\n      margin: 10px 0px;\r\n      padding: 0px;\r\n      display: block;\r\n      text-decoration: none;\r\n          }\r\n\r\n    .related-post .post-list .item .post_excerpt {\r\n      font-size: 12px;\r\n      color: #3f3f3f;\r\n      margin: 10px 0px;\r\n      padding: 0px;\r\n      display: block;\r\n      text-decoration: none;\r\n          }\r\n\r\n    .related-post .owl-dots .owl-dot {\r\n          }\r\n\r\n      <\/style>\r\n      <script>\r\n      jQuery(document).ready(function($) {\r\n        $(\".related-post .post-list\").owlCarousel({\r\n          items: 2,\r\n          responsiveClass: true,\r\n          responsive: {\r\n            0: {\r\n              items: 1,\r\n            },\r\n            768: {\r\n              items: 2,\r\n            },\r\n            1200: {\r\n              items: 2,\r\n            }\r\n          },\r\n                      rewind: true,\r\n                                loop: true,\r\n                                center: false,\r\n                                autoplay: true,\r\n            autoplayHoverPause: true,\r\n                                nav: true,\r\n            navSpeed: 1000,\r\n            navText: ['<i class=\"fas fa-chevron-left\"><\/i>', '<i class=\"fas fa-chevron-right\"><\/i>'],\r\n                                dots: false,\r\n            dotsSpeed: 1200,\r\n                                                    rtl: false,\r\n          \r\n        });\r\n      });\r\n    <\/script>\r\n  <\/div>","protected":false},"excerpt":{"rendered":"<p>\u2018Spam\u2019 could be one of the most dreadful word for a web application owner. Especially for an application with a lot of user generated content, it could be a nightmare to cope with. To keep the spammers at bay, a free service by Google called as reCaptcha could be used. A service to protect the &hellip;<\/p>\n<p class=\"read-more\"> <a class=\"\" href=\"https:\/\/www.railscarma.com\/fr\/blog\/ruby-multiline-comments-explained-with-examples\/\"> <span class=\"screen-reader-text\">Commentaires multilignes en Ruby expliqu\u00e9s avec des exemples<\/span> Lire la suite \u00bb<\/a><\/p>","protected":false},"author":1,"featured_media":31961,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[384],"tags":[658,659,382],"class_list":["post-7617","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technical-articles","tag-google-recaptcha","tag-google-recaptcha-on-ruby-on-rails","tag-ruby-on-rails"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Protect Your Web Application with Google reCaptcha on Ruby on Rails - RailsCarma - Ruby on Rails Development Company specializing in Offshore Development<\/title>\n<meta name=\"description\" content=\"\u2018Spam\u2019 could be one of the most dreadful word for a web application owner. Especially for an application with a lot of user generated content, it could be\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.railscarma.com\/fr\/blog\/articles-techniques\/protegez-votre-application-web-avec-google-recaptcha-sur-ruby-on-rails\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Protect Your Web Application with Google reCaptcha on Ruby on Rails - RailsCarma - Ruby on Rails Development Company specializing in Offshore Development\" \/>\n<meta property=\"og:description\" content=\"\u2018Spam\u2019 could be one of the most dreadful word for a web application owner. Especially for an application with a lot of user generated content, it could be\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.railscarma.com\/fr\/blog\/articles-techniques\/protegez-votre-application-web-avec-google-recaptcha-sur-ruby-on-rails\/\" \/>\n<meta property=\"og:site_name\" content=\"RailsCarma - Ruby on Rails Development Company specializing in Offshore Development\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/RailsCarma\/\" \/>\n<meta property=\"article:published_time\" content=\"2016-01-22T18:10:35+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-06-06T12:57:36+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/01\/recaptcha.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"800\" \/>\n\t<meta property=\"og:image:height\" content=\"300\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@railscarma\" \/>\n<meta name=\"twitter:site\" content=\"@railscarma\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/protect-your-web-application-with-google-recaptcha-on-ruby-on-rails\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/protect-your-web-application-with-google-recaptcha-on-ruby-on-rails\/\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\/\/www.railscarma.com\/#\/schema\/person\/5f2228a2dec7549056e709de6eb85d21\"},\"headline\":\"Protect Your Web Application with Google reCaptcha on Ruby on Rails\",\"datePublished\":\"2016-01-22T18:10:35+00:00\",\"dateModified\":\"2021-06-06T12:57:36+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/protect-your-web-application-with-google-recaptcha-on-ruby-on-rails\/\"},\"wordCount\":648,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.railscarma.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/protect-your-web-application-with-google-recaptcha-on-ruby-on-rails\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/01\/recaptcha.jpg\",\"keywords\":[\"Google reCaptcha\",\"Google reCaptcha on Ruby on Rails\",\"Ruby on rails\"],\"articleSection\":[\"Technical Articles\"],\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.railscarma.com\/blog\/technical-articles\/protect-your-web-application-with-google-recaptcha-on-ruby-on-rails\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/protect-your-web-application-with-google-recaptcha-on-ruby-on-rails\/\",\"url\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/protect-your-web-application-with-google-recaptcha-on-ruby-on-rails\/\",\"name\":\"Protect Your Web Application with Google reCaptcha on Ruby on Rails - RailsCarma - Ruby on Rails Development Company specializing in Offshore Development\",\"isPartOf\":{\"@id\":\"https:\/\/www.railscarma.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/protect-your-web-application-with-google-recaptcha-on-ruby-on-rails\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/protect-your-web-application-with-google-recaptcha-on-ruby-on-rails\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/01\/recaptcha.jpg\",\"datePublished\":\"2016-01-22T18:10:35+00:00\",\"dateModified\":\"2021-06-06T12:57:36+00:00\",\"description\":\"\u2018Spam\u2019 could be one of the most dreadful word for a web application owner. Especially for an application with a lot of user generated content, it could be\",\"breadcrumb\":{\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/protect-your-web-application-with-google-recaptcha-on-ruby-on-rails\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.railscarma.com\/blog\/technical-articles\/protect-your-web-application-with-google-recaptcha-on-ruby-on-rails\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/protect-your-web-application-with-google-recaptcha-on-ruby-on-rails\/#primaryimage\",\"url\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/01\/recaptcha.jpg\",\"contentUrl\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/01\/recaptcha.jpg\",\"width\":800,\"height\":300},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/protect-your-web-application-with-google-recaptcha-on-ruby-on-rails\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.railscarma.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Protect Your Web Application with Google reCaptcha on Ruby on Rails\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.railscarma.com\/#website\",\"url\":\"https:\/\/www.railscarma.com\/\",\"name\":\"RailsCarma - Ruby on Rails Development Company specializing in Offshore Development\",\"description\":\"RailsCarma is a Ruby on Rails Development Company in Bangalore. We specialize in Offshore Ruby on Rails Development based out in USA and India. Hire experienced Ruby on Rails developers for the ultimate Web Experience.\",\"publisher\":{\"@id\":\"https:\/\/www.railscarma.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.railscarma.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.railscarma.com\/#organization\",\"name\":\"RailsCarma\",\"url\":\"https:\/\/www.railscarma.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/www.railscarma.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/08\/railscarma_logo.png\",\"contentUrl\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/08\/railscarma_logo.png\",\"width\":200,\"height\":46,\"caption\":\"RailsCarma\"},\"image\":{\"@id\":\"https:\/\/www.railscarma.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/RailsCarma\/\",\"https:\/\/x.com\/railscarma\",\"https:\/\/www.linkedin.com\/company\/railscarma\/\",\"https:\/\/myspace.com\/railscarma\",\"https:\/\/in.pinterest.com\/railscarma\/\",\"https:\/\/www.youtube.com\/channel\/UCx3Wil-aAnDARuatTEyMdpg\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.railscarma.com\/#\/schema\/person\/5f2228a2dec7549056e709de6eb85d21\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/www.railscarma.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/308867ca6c81f3aba146080c601000087180326f752c4116849ea9f514c6a4fa?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/308867ca6c81f3aba146080c601000087180326f752c4116849ea9f514c6a4fa?s=96&d=mm&r=g\",\"caption\":\"admin\"},\"sameAs\":[\"https:\/\/www.railscarma.com\/hire-ruby-on-rails-developer\/\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Prot\u00e9gez votre application Web avec Google reCaptcha sur Ruby on Rails - RailsCarma - Ruby on Rails Development Company sp\u00e9cialis\u00e9e dans le d\u00e9veloppement offshore","description":"\u00ab\u00a0Spam\u00a0\u00bb pourrait \u00eatre l&#039;un des mots les plus redoutables pour un propri\u00e9taire d&#039;application Web. Surtout pour une application avec beaucoup de contenu g\u00e9n\u00e9r\u00e9 par l&#039;utilisateur, cela pourrait \u00eatre","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.railscarma.com\/fr\/blog\/articles-techniques\/protegez-votre-application-web-avec-google-recaptcha-sur-ruby-on-rails\/","og_locale":"fr_FR","og_type":"article","og_title":"Protect Your Web Application with Google reCaptcha on Ruby on Rails - RailsCarma - Ruby on Rails Development Company specializing in Offshore Development","og_description":"\u2018Spam\u2019 could be one of the most dreadful word for a web application owner. Especially for an application with a lot of user generated content, it could be","og_url":"https:\/\/www.railscarma.com\/fr\/blog\/articles-techniques\/protegez-votre-application-web-avec-google-recaptcha-sur-ruby-on-rails\/","og_site_name":"RailsCarma - Ruby on Rails Development Company specializing in Offshore Development","article_publisher":"https:\/\/www.facebook.com\/RailsCarma\/","article_published_time":"2016-01-22T18:10:35+00:00","article_modified_time":"2021-06-06T12:57:36+00:00","og_image":[{"width":800,"height":300,"url":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/01\/recaptcha.jpg","type":"image\/jpeg"}],"author":"admin","twitter_card":"summary_large_image","twitter_creator":"@railscarma","twitter_site":"@railscarma","twitter_misc":{"\u00c9crit par":"admin","Dur\u00e9e de lecture estim\u00e9e":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/protect-your-web-application-with-google-recaptcha-on-ruby-on-rails\/#article","isPartOf":{"@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/protect-your-web-application-with-google-recaptcha-on-ruby-on-rails\/"},"author":{"name":"admin","@id":"https:\/\/www.railscarma.com\/#\/schema\/person\/5f2228a2dec7549056e709de6eb85d21"},"headline":"Protect Your Web Application with Google reCaptcha on Ruby on Rails","datePublished":"2016-01-22T18:10:35+00:00","dateModified":"2021-06-06T12:57:36+00:00","mainEntityOfPage":{"@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/protect-your-web-application-with-google-recaptcha-on-ruby-on-rails\/"},"wordCount":648,"commentCount":0,"publisher":{"@id":"https:\/\/www.railscarma.com\/#organization"},"image":{"@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/protect-your-web-application-with-google-recaptcha-on-ruby-on-rails\/#primaryimage"},"thumbnailUrl":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/01\/recaptcha.jpg","keywords":["Google reCaptcha","Google reCaptcha on Ruby on Rails","Ruby on rails"],"articleSection":["Technical Articles"],"inLanguage":"fr-FR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.railscarma.com\/blog\/technical-articles\/protect-your-web-application-with-google-recaptcha-on-ruby-on-rails\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/protect-your-web-application-with-google-recaptcha-on-ruby-on-rails\/","url":"https:\/\/www.railscarma.com\/blog\/technical-articles\/protect-your-web-application-with-google-recaptcha-on-ruby-on-rails\/","name":"Prot\u00e9gez votre application Web avec Google reCaptcha sur Ruby on Rails - RailsCarma - Ruby on Rails Development Company sp\u00e9cialis\u00e9e dans le d\u00e9veloppement offshore","isPartOf":{"@id":"https:\/\/www.railscarma.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/protect-your-web-application-with-google-recaptcha-on-ruby-on-rails\/#primaryimage"},"image":{"@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/protect-your-web-application-with-google-recaptcha-on-ruby-on-rails\/#primaryimage"},"thumbnailUrl":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/01\/recaptcha.jpg","datePublished":"2016-01-22T18:10:35+00:00","dateModified":"2021-06-06T12:57:36+00:00","description":"\u00ab\u00a0Spam\u00a0\u00bb pourrait \u00eatre l&#039;un des mots les plus redoutables pour un propri\u00e9taire d&#039;application Web. Surtout pour une application avec beaucoup de contenu g\u00e9n\u00e9r\u00e9 par l&#039;utilisateur, cela pourrait \u00eatre","breadcrumb":{"@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/protect-your-web-application-with-google-recaptcha-on-ruby-on-rails\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.railscarma.com\/blog\/technical-articles\/protect-your-web-application-with-google-recaptcha-on-ruby-on-rails\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/protect-your-web-application-with-google-recaptcha-on-ruby-on-rails\/#primaryimage","url":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/01\/recaptcha.jpg","contentUrl":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/01\/recaptcha.jpg","width":800,"height":300},{"@type":"BreadcrumbList","@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/protect-your-web-application-with-google-recaptcha-on-ruby-on-rails\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.railscarma.com\/"},{"@type":"ListItem","position":2,"name":"Protect Your Web Application with Google reCaptcha on Ruby on Rails"}]},{"@type":"WebSite","@id":"https:\/\/www.railscarma.com\/#website","url":"https:\/\/www.railscarma.com\/","name":"RailsCarma - Soci\u00e9t\u00e9 de d\u00e9veloppement Ruby on Rails sp\u00e9cialis\u00e9e dans le d\u00e9veloppement offshore","description":"RailsCarma est une soci\u00e9t\u00e9 de d\u00e9veloppement Ruby on Rails \u00e0 Bangalore. Nous sommes sp\u00e9cialis\u00e9s dans le d\u00e9veloppement offshore Ruby on Rails, bas\u00e9s aux \u00c9tats-Unis et en Inde. Embauchez des d\u00e9veloppeurs Ruby on Rails exp\u00e9riment\u00e9s pour une exp\u00e9rience Web ultime.","publisher":{"@id":"https:\/\/www.railscarma.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.railscarma.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/www.railscarma.com\/#organization","name":"RailsCarma","url":"https:\/\/www.railscarma.com\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.railscarma.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/08\/railscarma_logo.png","contentUrl":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/08\/railscarma_logo.png","width":200,"height":46,"caption":"RailsCarma"},"image":{"@id":"https:\/\/www.railscarma.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/RailsCarma\/","https:\/\/x.com\/railscarma","https:\/\/www.linkedin.com\/company\/railscarma\/","https:\/\/myspace.com\/railscarma","https:\/\/in.pinterest.com\/railscarma\/","https:\/\/www.youtube.com\/channel\/UCx3Wil-aAnDARuatTEyMdpg"]},{"@type":"Person","@id":"https:\/\/www.railscarma.com\/#\/schema\/person\/5f2228a2dec7549056e709de6eb85d21","name":"administrateur","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.railscarma.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/308867ca6c81f3aba146080c601000087180326f752c4116849ea9f514c6a4fa?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/308867ca6c81f3aba146080c601000087180326f752c4116849ea9f514c6a4fa?s=96&d=mm&r=g","caption":"admin"},"sameAs":["https:\/\/www.railscarma.com\/hire-ruby-on-rails-developer\/"]}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/posts\/7617","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/comments?post=7617"}],"version-history":[{"count":0,"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/posts\/7617\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/media\/31961"}],"wp:attachment":[{"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/media?parent=7617"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/categories?post=7617"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/tags?post=7617"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}