{"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":"protege-tu-aplicacion-web-con-google-recaptcha-en-ruby-on-rails","status":"publish","type":"post","link":"https:\/\/www.railscarma.com\/es\/blog\/articulos-tecnicos\/protege-tu-aplicacion-web-con-google-recaptcha-en-ruby-on-rails\/","title":{"rendered":"Protege tu aplicaci\u00f3n web con Google reCAPTCHA en 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\u2018Spam\u2019 podr\u00eda ser una de las palabras m\u00e1s temidas por cualquier propietario de una aplicaci\u00f3n web. Especialmente en el caso de una aplicaci\u00f3n con mucho contenido generado por los usuarios, lidiar con \u00e9l puede convertirse en una pesadilla. Para mantener a raya a los spammers, se puede utilizar un servicio gratuito de Google llamado reCaptcha. Google reCaptcha es un servicio que protege el sitio web contra el spam y los abusos, y permite a los usuarios iniciar sesi\u00f3n sin tener que resolver un captcha; adem\u00e1s, protege la aplicaci\u00f3n frente a ataques de denegaci\u00f3n de servicio al impedir el env\u00edo automatizado de formularios.\n\nGoogle reCaptcha, una soluci\u00f3n mejor que los captchas de imagen existentes, es f\u00e1cil de usar e incluye funciones de seguridad avanzadas. Mediante un motor avanzado de an\u00e1lisis de riesgos, reCaptcha impide que los bots automatizados realicen actividades de spam en tu aplicaci\u00f3n. Adem\u00e1s, es mucho m\u00e1s f\u00e1cil de usar que los antiguos captchas de imagen.\n\nAntes de poder a\u00f1adir Google reCaptcha a tu aplicaci\u00f3n, debes seguir estos pasos:\n\n1) Obtener las credenciales\n2) A\u00f1adir las etiquetas de reCaptcha\n3) Para gestionar la verificaci\u00f3n, crear una clase de reCaptcha\n4) En el controlador \u00abRegistrations\u00bb, a\u00f1adir el m\u00e9todo \u00abverify_reCaptcha\u00bb\n\n<strong>Configuraci\u00f3n<\/strong>\n\n<strong>Paso 1:-<\/strong>\n\nAdd the following to your gem file:\n\ngem &#8220;recaptcha&#8221;, :require =&gt; &#8220;recaptcha\/rails&#8221;\n\n<strong>Paso 2:-<\/strong>\n\nEntra en http:\/\/developers.google.com, inicia sesi\u00f3n en tu cuenta de Gmail y busca \u2018reCAPTCHA\u2019. Haz clic en \u201c<strong>Solicita una clave API<\/strong>\u201d. Comprueba la clave secreta y la clave del sitio. Como su propio nombre indica, la clave secreta debe guardarse en un lugar seguro, mientras que la clave del sitio es la clave p\u00fablica que se utiliza para autenticarse en Google. Registra el nombre de tu sitio en tu cuenta de Google para obtener la clave p\u00fablica y la clave privada que se utilizar\u00e1n m\u00e1s adelante en la aplicaci\u00f3n.\n\nUna vez completado el registro, obtendr\u00e1s la clave p\u00fablica y la clave privada. Desde el lado del cliente, la clave p\u00fablica se env\u00eda al servicio reCAPTCHA para solicitar un nuevo captcha. La clave privada se aplica en el lado del servidor para verificar si se ha introducido el valor correcto.\n\nA continuaci\u00f3n, solicita una clave de la API de reCAPTCHA y a\u00f1\u00e1dela a los archivos de configuraci\u00f3n de tu entorno:\n\n#: introduce esto en development.rb y en production.rb\n\n<strong>ENV_RECAPTCHA_PUBLIC_KEY<\/strong>= &#8216;your-public-key&#8217;\n\n<strong>ENV_RECAPTCHA_PRIVATE_KEY<\/strong>= &#8216;your-private-key&#8217;\n\n<strong>Paso 3:-<\/strong>\n\nCreate a file named recaptcha.rb in config\/initializers to configure recaptcha parameters.\n\nRecaptcha.configure do |config|\nconfig.public_key = &#8216; ENV_RECAPTCHA_PUBLIC_KEY&#8217;\nconfig.private_key = &#8216;ENV_RECAPTCHA_PRIVATE_KEY&#8217;\nconfig.proxy = &#8216;http:\/\/www.google.com\/recaptcha\/api\/verify&#8217;\nend\n\n<strong>Paso 4:-<\/strong>\n\n<strong>Ver<\/strong>\n\nThe Captcha Gem helps to render the actual captcha box. It&#8217;s as simple as putting the following into your view at the point where you want the captcha to appear:\n\n&lt;%= raw recaptcha_tags %&gt;\n\nIf you are using SSL, use this instead:\n\n&lt;%= recaptcha_tags :ssl =&gt; true %&gt;, The SSL option ensures we send a https request to the recaptcha service.\n\n<strong>Paso 5:-<\/strong>\n\n<strong>Controlador<\/strong>\n<blockquote>The Captcha Gem provides another helper method that posts to the reCaptcha API server to verify if the submission is correct. If it is then the method returns true, if not, it will add a custom error message that the recaptcha is wrong to the model instance. Here is the basic code as you might have it in the create action of your controller:-\nIn devise controllers, app\/controllers\/registrations_controller.rb, Insert the following code:\nrequire &#8216;recaptcha.rb&#8217;\nbefore_action :verify_recaptcha, only: [:create]\ndef verify_recaptcha\nresponse = Recaptcha.verify(params)\nsession[:sign_up] = params[:user].except(:password, :password_confirmation, :remoteip)\nif response.code == 200\nif response[&#8216;success&#8217;]\nflash[:notice] = &#8220;Recaptcha verification successful.&#8221;\nelse\nredirect_to new_user_registration_path(user: params[:user]),\nalert: &#8220;Recaptcha verification error.&#8221;\nend\nelse\nredirect_to new_user_registration_path(user: params[:user]),\nalert: &#8220;HTTP connection error.&#8221;\nend\nend<\/blockquote>\nLa sesi\u00f3n [:sign_up] se conserva, ya que el formulario de registro se puede rellenar autom\u00e1ticamente si falla la verificaci\u00f3n.\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\">Suscr\u00edbete para recibir las \u00faltimas actualizaciones<\/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=\"cargador\"><\/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=\"e62478fb43\">\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=\"Direcci\u00f3n de correo electr\u00f3nico\">\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=\"Nombre\">\r\n<\/p>\r\n<p>\r\n    <input type=\"submit\" id=\"invisible\" class=\"sib-default-btn\" value=\"Suscribir\">\r\n<\/p>\t\t\t\t<\/div>\n\t\t\t<input type=\"hidden\" name=\"trp-form-language\" value=\"es\"\/><\/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\">Art\u00edculos Relacionados<\/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=\"Gema Kaminari\" href=\"https:\/\/www.railscarma.com\/es\/blog\/articulos-tecnicos\/gema-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=\"gema 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=\"Gema Kaminari\" href=\"https:\/\/www.railscarma.com\/es\/blog\/articulos-tecnicos\/gema-kaminari\/?related_post_from=37277\">\r\n        Gema Kaminari  <\/a>\r\n\r\n        <\/div>\r\n              <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"\u00bfPor qu\u00e9 contratar desarrolladores Ruby on Rails en 2026?\" href=\"https:\/\/www.railscarma.com\/es\/blog\/ror\/por-que-contratar-desarrolladores-de-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=\"por qu\u00e9 contratar desarrolladores de 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=\"\u00bfPor qu\u00e9 contratar desarrolladores Ruby on Rails en 2026?\" href=\"https:\/\/www.railscarma.com\/es\/blog\/ror\/por-que-contratar-desarrolladores-de-ruby-on-rails\/?related_post_from=30627\">\r\n        \u00bfPor qu\u00e9 contratar desarrolladores 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=\"Extracci\u00f3n de datos en rieles mediante procesamiento CSV\" href=\"https:\/\/www.railscarma.com\/es\/blog\/articulos-tecnicos\/raspado-de-datos-en-rieles-mediante-el-procesamiento-de-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=\"Extracci\u00f3n de datos en rieles mediante procesamiento CSV\" href=\"https:\/\/www.railscarma.com\/es\/blog\/articulos-tecnicos\/raspado-de-datos-en-rieles-mediante-el-procesamiento-de-csv\/?related_post_from=31591\">\r\n        Extracci\u00f3n de datos en rieles mediante procesamiento CSV  <\/a>\r\n\r\n        <\/div>\r\n              <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"Realice llamadas de voz a trav\u00e9s de aplicaciones web Ruby on Rails\" href=\"https:\/\/www.railscarma.com\/es\/blog\/articulos-tecnicos\/realizar-llamadas-de-voz-a-traves-de-aplicaciones-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=\"Realice llamadas de voz a trav\u00e9s de aplicaciones web Ruby on Rails\" href=\"https:\/\/www.railscarma.com\/es\/blog\/articulos-tecnicos\/realizar-llamadas-de-voz-a-traves-de-aplicaciones-web-ruby-on-rails\/?related_post_from=31309\">\r\n        Realice llamadas de voz a trav\u00e9s de aplicaciones 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\/es\/blog\/ruby-on-rails-for-enterprise-automation-solutions\/\"> <span class=\"screen-reader-text\">Ruby on Rails para soluciones de automatizaci\u00f3n empresarial: la transformaci\u00f3n de las operaciones empresariales modernas<\/span> Leer m\u00e1s \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\/es\/blog\/articulos-tecnicos\/protege-tu-aplicacion-web-con-google-recaptcha-en-ruby-on-rails\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\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\/es\/blog\/articulos-tecnicos\/protege-tu-aplicacion-web-con-google-recaptcha-en-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=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutos\" \/>\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\":\"es\",\"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\":\"es\",\"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\":\"es\",\"@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\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.railscarma.com\/#organization\",\"name\":\"RailsCarma\",\"url\":\"https:\/\/www.railscarma.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@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\":\"es\",\"@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":"Protege tu aplicaci\u00f3n web con Google reCaptcha en Ruby on Rails - RailsCarma - Empresa de desarrollo de Ruby on Rails especializada en desarrollo offshore","description":"\u2018Spam\u2019 podr\u00eda ser una de las palabras m\u00e1s temidas por el propietario de una aplicaci\u00f3n web. Especialmente en el caso de una aplicaci\u00f3n con mucho contenido generado por los usuarios, podr\u00eda ser","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\/es\/blog\/articulos-tecnicos\/protege-tu-aplicacion-web-con-google-recaptcha-en-ruby-on-rails\/","og_locale":"es_ES","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\/es\/blog\/articulos-tecnicos\/protege-tu-aplicacion-web-con-google-recaptcha-en-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":{"Escrito por":"admin","Tiempo de lectura":"3 minutos"},"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":"es","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":"Protege tu aplicaci\u00f3n web con Google reCaptcha en Ruby on Rails - RailsCarma - Empresa de desarrollo de Ruby on Rails especializada en desarrollo 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":"\u2018Spam\u2019 podr\u00eda ser una de las palabras m\u00e1s temidas por el propietario de una aplicaci\u00f3n web. Especialmente en el caso de una aplicaci\u00f3n con mucho contenido generado por los usuarios, podr\u00eda ser","breadcrumb":{"@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/protect-your-web-application-with-google-recaptcha-on-ruby-on-rails\/#breadcrumb"},"inLanguage":"es","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":"es","@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 - Empresa de desarrollo Ruby on Rails especializada en desarrollo offshore","description":"RailsCarma es una empresa de desarrollo de Ruby on Rails en Bangalore. Nos especializamos en el desarrollo offshore de Ruby on Rails con sede en EE. UU. e India. Contrate desarrolladores experimentados de Ruby on Rails para disfrutar de la mejor experiencia web.","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":"es"},{"@type":"Organization","@id":"https:\/\/www.railscarma.com\/#organization","name":"RielesCarma","url":"https:\/\/www.railscarma.com\/","logo":{"@type":"ImageObject","inLanguage":"es","@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":"administraci\u00f3n","image":{"@type":"ImageObject","inLanguage":"es","@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\/es\/wp-json\/wp\/v2\/posts\/7617","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.railscarma.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.railscarma.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.railscarma.com\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.railscarma.com\/es\/wp-json\/wp\/v2\/comments?post=7617"}],"version-history":[{"count":0,"href":"https:\/\/www.railscarma.com\/es\/wp-json\/wp\/v2\/posts\/7617\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.railscarma.com\/es\/wp-json\/wp\/v2\/media\/31961"}],"wp:attachment":[{"href":"https:\/\/www.railscarma.com\/es\/wp-json\/wp\/v2\/media?parent=7617"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.railscarma.com\/es\/wp-json\/wp\/v2\/categories?post=7617"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.railscarma.com\/es\/wp-json\/wp\/v2\/tags?post=7617"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}