{"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":"protect-your-web-application-with-google-recaptcha-on-ruby-on-rails","status":"publish","type":"post","link":"https:\/\/www.railscarma.com\/sv\/blogg\/tekniska-artiklar\/protect-your-web-application-with-google-recaptcha-on-ruby-on-rails\/","title":{"rendered":"Skydda din webbapplikation med Google reCaptcha p\u00e5 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\"Spam\" kan vara ett av de mest fruktade orden f\u00f6r en \u00e4gare av en webbapplikation. Speciellt f\u00f6r en applikation med mycket anv\u00e4ndargenererat inneh\u00e5ll kan det vara en mardr\u00f6m att hantera. F\u00f6r att h\u00e5lla spammarna borta kan man anv\u00e4nda en gratistj\u00e4nst fr\u00e5n Google som kallas reCaptcha. Google reCaptcha \u00e4r en tj\u00e4nst som skyddar webbplatsen fr\u00e5n spam och missbruk och ger anv\u00e4ndarna m\u00f6jlighet att intyga utan att beh\u00f6va l\u00f6sa en captcha, och skyddar applikationen fr\u00e5n en \u00f6verbelastningsattack genom att f\u00f6rhindra automatiserade formul\u00e4rinl\u00e4mningar.\n\nGoogle reCaptcha \u00e4r en b\u00e4ttre l\u00f6sning \u00e4n de befintliga bildcaptchaserna, \u00e4r l\u00e4tt att anv\u00e4nda och levereras med avancerade s\u00e4kerhetsfunktioner. Med hj\u00e4lp av en avancerad riskanalysmotor hindrar reCaptcha de automatiserade robotarna fr\u00e5n att delta i skr\u00e4ppostaktiviteter f\u00f6r din applikation. Dessutom \u00e4r det mycket mer anv\u00e4ndarv\u00e4nligt \u00e4n de tidigare bild captchas.\n\nInnan du kan l\u00e4gga till Google reCaptcha i din applikation m\u00e5ste du f\u00f6lja dessa steg:\n\n1) Skaffa inloggningsuppgifterna\n2) L\u00e4gg till recaptcha-taggar\n3) F\u00f6r att hantera verifiering, skapa en recaptcha-klass\n4) I Registrations controller l\u00e4gger du till metoden verify_recaptcha\n\n<strong>Uppstart<\/strong>\n\n<strong>Steg 1: -.<\/strong>\n\nL\u00e4gg till f\u00f6ljande i din gem-fil:\n\ngem \"recaptcha\", :require =&gt; \"recaptcha\/rails\"\n\n<strong>Steg 2<\/strong>\n\nLogga in p\u00e5 http:\/\/developers.google.com och logga in p\u00e5 ditt gmail-konto och s\u00f6k efter \"recaptcha\". Klicka p\u00e5 \"<strong>Registrera dig f\u00f6r en API-nyckel<\/strong>\" l\u00e4nk. Kontrollera den hemliga nyckeln och webbplatsnyckeln. Som namnet antyder b\u00f6r den hemliga nyckeln f\u00f6rvaras p\u00e5 en s\u00e4krare plats medan webbplatsnyckeln \u00e4r den offentliga nyckel som anv\u00e4nds f\u00f6r att autentisera sig hos Google. Registrera ditt webbplatsnamn med ditt Google-konto f\u00f6r att h\u00e4mta den offentliga och privata nyckeln som kommer att anv\u00e4ndas senare i applikationen.\n\nN\u00e4r registreringen \u00e4r klar f\u00e5r du den offentliga nyckeln och den privata nyckeln. Fr\u00e5n klientsidan skickas den offentliga nyckeln till recaptcha-tj\u00e4nsten f\u00f6r att beg\u00e4ra en ny captcha. Den privata nyckeln anv\u00e4nds p\u00e5 serversidan f\u00f6r att verifiera om r\u00e4tt v\u00e4rde har angetts.\n\nRegistrera dig sedan f\u00f6r en reCAPTCHA API-nyckel och l\u00e4gg till den i dina konfigurationsfiler f\u00f6r milj\u00f6n:\n\n1TP5S\u00e4tt in detta i development.rb och i production.rb\n\n<strong>ENV_RECAPTCHA_PUBLIC_KEY<\/strong>= \"din-offentliga-nyckel\n\n<strong>ENV_RECAPTCHA_PRIVAT_NYCKEL<\/strong>= \"din privata nyckel\n\n<strong>Steg 3<\/strong>\n\nSkapa en fil med namnet recaptcha.rb i config\/initializers f\u00f6r att konfigurera recaptcha-parametrar.\n\nRecaptcha.configure do |config|\nconfig.public_key = ' ENV_RECAPTCHA_PUBLIC_KEY'\nconfig.private_key = 'ENV_RECAPTCHA_PRIVATE_KEY'\nconfig.proxy = 'http:\/\/www.google.com\/recaptcha\/api\/verify'\nslut\n\n<strong>Steg 4: -.<\/strong>\n\n<strong>Utsikt<\/strong>\n\nCaptcha Gem hj\u00e4lper till att rendera den faktiska captcha-rutan. Det \u00e4r s\u00e5 enkelt som att l\u00e4gga in f\u00f6ljande i din vy vid den punkt d\u00e4r du vill att captcha ska visas:\n\n\n\nOm du anv\u00e4nder SSL, anv\u00e4nd detta ist\u00e4llet:\n\n true %&gt;, SSL-alternativet s\u00e4kerst\u00e4ller att vi skickar en https-beg\u00e4ran till recaptcha-tj\u00e4nsten.\n\n<strong>Steg 5<\/strong>\n\n<strong>Styrenhet<\/strong>\n<blockquote>Captcha Gem tillhandah\u00e5ller en annan hj\u00e4lpmetod som skickas till reCaptcha API-servern f\u00f6r att verifiera om inl\u00e4mningen \u00e4r korrekt. Om det \u00e4r s\u00e5 returnerar metoden true, om inte kommer den att l\u00e4gga till ett anpassat felmeddelande om att recaptcha \u00e4r fel i modellinstansen. H\u00e4r \u00e4r den grundl\u00e4ggande koden som du kanske har den i create-\u00e5tg\u00e4rden i din controller: -\nI devise controllers, app\/controllers\/registrations_controller.rb, infoga f\u00f6ljande kod:\nkr\u00e4va 'recaptcha.rb'\nbefore_action :verify_recaptcha, only: [:create]\ndef verify_recaptcha\nsvar = Recaptcha.verify(params)\nsession[:sign_up] = params[:user].except(:password, :password_confirmation, :remoteip)\nif response.code == 200\nif svar['framg\u00e5ng']\nflash[:notice] = \"Recaptcha-verifieringen lyckades.\"\nelse\nredirect_to new_user_registration_path(user: params[:user]),\nalert: \"Recaptcha verifieringsfel.\"\nslut\nannat\nredirect_to new_user_registration_path(user: params[:user]),\nvarning: \"HTTP-anslutningsfel.\"\nslut\nslut<\/blockquote>\nSession[:sign_up] sparas eftersom registreringsformul\u00e4ret kan fyllas i i f\u00f6rv\u00e4g om verifieringen misslyckas.\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\">Prenumerera f\u00f6r de senaste uppdateringarna<\/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=\"lastare\"><\/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=\"d484aeae60\">\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=\"E-postadress\">\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=\"namn\">\r\n<\/p>\r\n<p>\r\n    <input type=\"submit\" id=\"invisible\" class=\"sib-default-btn\" value=\"Prenumerera\">\r\n<\/p>\t\t\t\t<\/div>\n\t\t\t<input type=\"hidden\" name=\"trp-form-language\" value=\"sv\"\/><\/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\">relaterade inl\u00e4gg<\/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=\"Kaminari Gem\" href=\"https:\/\/www.railscarma.com\/sv\/blogg\/tekniska-artiklar\/kaminari-parla\/?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=\"kaminari p\u00e4rla\" 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=\"Kaminari Gem\" href=\"https:\/\/www.railscarma.com\/sv\/blogg\/tekniska-artiklar\/kaminari-parla\/?related_post_from=37277\">\r\n        Kaminari Gem  <\/a>\r\n\r\n        <\/div>\r\n              <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"Varf\u00f6r anst\u00e4lla Ruby on Rails-utvecklare 2026?\" href=\"https:\/\/www.railscarma.com\/sv\/blogg\/ror\/varfor-anlita-utvecklare-av-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=\"varf\u00f6r anlita utvecklare av ruby on rails 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=\"Varf\u00f6r anst\u00e4lla Ruby on Rails-utvecklare 2026?\" href=\"https:\/\/www.railscarma.com\/sv\/blogg\/ror\/varfor-anlita-utvecklare-av-ruby-on-rails\/?related_post_from=30627\">\r\n        Varf\u00f6r anst\u00e4lla Ruby on Rails-utvecklare 2026?  <\/a>\r\n\r\n        <\/div>\r\n              <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"Dataskrapning i skenor genom att bearbeta CSV\" href=\"https:\/\/www.railscarma.com\/sv\/blogg\/tekniska-artiklar\/dataskrapning-i-skenor-genom-att-bearbeta-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=\"Dataskrapning i skenor genom att bearbeta CSV\" href=\"https:\/\/www.railscarma.com\/sv\/blogg\/tekniska-artiklar\/dataskrapning-i-skenor-genom-att-bearbeta-csv\/?related_post_from=31591\">\r\n        Dataskrapning i skenor genom att bearbeta CSV  <\/a>\r\n\r\n        <\/div>\r\n              <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"Ring r\u00f6stsamtal genom Ruby on Rails webbapplikationer\" href=\"https:\/\/www.railscarma.com\/sv\/blogg\/tekniska-artiklar\/ringa-rostsamtal-genom-ruby-on-rails-webbapplikationer\/?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=\"Ring r\u00f6stsamtal genom Ruby on Rails webbapplikationer\" href=\"https:\/\/www.railscarma.com\/sv\/blogg\/tekniska-artiklar\/ringa-rostsamtal-genom-ruby-on-rails-webbapplikationer\/?related_post_from=31309\">\r\n        Ring r\u00f6stsamtal genom Ruby on Rails webbapplikationer  <\/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>\"Spam\" kan vara ett av de mest fruktade orden f\u00f6r en \u00e4gare av en webbapplikation. Speciellt f\u00f6r en applikation med mycket anv\u00e4ndargenererat inneh\u00e5ll kan det vara en mardr\u00f6m att hantera. F\u00f6r att h\u00e5lla spammarna borta kan man anv\u00e4nda en gratistj\u00e4nst fr\u00e5n Google som kallas reCaptcha. En tj\u00e4nst f\u00f6r att skydda ...<\/p>\n<p class=\"read-more\"> <a class=\"\" href=\"https:\/\/www.railscarma.com\/sv\/blogg\/vad-ar-offliberty-ruby-gem-och-hur-fungerar-det\/\"> <span class=\"screen-reader-text\">Vad \u00e4r Offliberty Ruby Gem och hur fungerar den?<\/span> L\u00e4s mer \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\/sv\/blogg\/tekniska-artiklar\/protect-your-web-application-with-google-recaptcha-on-ruby-on-rails\/\" \/>\n<meta property=\"og:locale\" content=\"sv_SE\" \/>\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\/sv\/blogg\/tekniska-artiklar\/protect-your-web-application-with-google-recaptcha-on-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=\"Skriven av\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Ber\u00e4knad l\u00e4stid\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minuter\" \/>\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\":\"sv-SE\",\"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\":\"sv-SE\",\"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\":\"sv-SE\",\"@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\":\"sv-SE\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.railscarma.com\/#organization\",\"name\":\"RailsCarma\",\"url\":\"https:\/\/www.railscarma.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"sv-SE\",\"@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\":\"sv-SE\",\"@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":"Protect Your Web Application with Google reCaptcha on Ruby on Rails - RailsCarma - Ruby on Rails Development Company specializing in Offshore Development","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","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\/sv\/blogg\/tekniska-artiklar\/protect-your-web-application-with-google-recaptcha-on-ruby-on-rails\/","og_locale":"sv_SE","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\/sv\/blogg\/tekniska-artiklar\/protect-your-web-application-with-google-recaptcha-on-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":{"Skriven av":"admin","Ber\u00e4knad l\u00e4stid":"3 minuter"},"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":"sv-SE","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":"sv-SE","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":"sv-SE","@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 specialiserat p\u00e5 Offshore Development","description":"RailsCarma \u00e4r ett Ruby on Rails Development Company i Bangalore. Vi \u00e4r specialiserade p\u00e5 Offshore Ruby on Rails Development baserat i USA och Indien. Anst\u00e4ll erfarna Ruby on Rails-utvecklare f\u00f6r den ultimata webbupplevelsen.","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":"sv-SE"},{"@type":"Organization","@id":"https:\/\/www.railscarma.com\/#organization","name":"RailsCarma","url":"https:\/\/www.railscarma.com\/","logo":{"@type":"ImageObject","inLanguage":"sv-SE","@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":"administration","image":{"@type":"ImageObject","inLanguage":"sv-SE","@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\/sv\/wp-json\/wp\/v2\/posts\/7617","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.railscarma.com\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.railscarma.com\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.railscarma.com\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.railscarma.com\/sv\/wp-json\/wp\/v2\/comments?post=7617"}],"version-history":[{"count":0,"href":"https:\/\/www.railscarma.com\/sv\/wp-json\/wp\/v2\/posts\/7617\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.railscarma.com\/sv\/wp-json\/wp\/v2\/media\/31961"}],"wp:attachment":[{"href":"https:\/\/www.railscarma.com\/sv\/wp-json\/wp\/v2\/media?parent=7617"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.railscarma.com\/sv\/wp-json\/wp\/v2\/categories?post=7617"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.railscarma.com\/sv\/wp-json\/wp\/v2\/tags?post=7617"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}