{"id":16154,"date":"2018-09-05T08:00:46","date_gmt":"2018-09-05T11:00:46","guid":{"rendered":"https:\/\/www.mxcursos.com\/blog\/?p=16154"},"modified":"2022-01-25T09:27:44","modified_gmt":"2022-01-25T12:27:44","slug":"como-implementar-o-recaptcha-invisivel-no-seu-site","status":"publish","type":"post","link":"https:\/\/www.mxcursos.com\/blog\/como-implementar-o-recaptcha-invisivel-no-seu-site\/","title":{"rendered":"Como implementar o reCAPTCHA invis\u00edvel no seu site"},"content":{"rendered":"<p>O <strong>reCaptcha<\/strong> \u00e9 um tecnologia disponibilizada pelo Google para prote\u00e7\u00e3o contra spam e abusos. Ele realiza <strong>Machine Learning<\/strong>, que faz uma combina\u00e7\u00e3o de an\u00e1lise de acordo com o que vai sendo utilizando e assim aprendendo a identificar usu\u00e1rios inv\u00e1lidos.<\/p>\n<p>Al\u00e9m disso, toda vez que voc\u00ea precisa escrever, identificar imagem, isso \u00e9 utilizado para digitalizar texto, anotar imagens e criar conjuntos de dados de aprendizado de m\u00e1quina.<\/p>\n<p>Isso por sua vez ajuda a preservar livros, melhorar mapas e resolver problemas de intelig\u00eancia artificial.<\/p>\n<p>O <strong>reCaptcha<\/strong> em sua evolu\u00e7\u00f5es come\u00e7ou com identifica\u00e7\u00e3o de palavras, depois utilizando n\u00fameros de casas em fotos tiradas pelos carros do Street View e depois reconhecimento de imagens, como identificar em quais fotos tem algum carro na imagem, por exemplo.<\/p>\n<p>E em 2017, o Google lan\u00e7ou o\u00a0<strong>Invisible reCaptcha<\/strong>, o qual n\u00e3o solicita nenhum desafio para identificar o usu\u00e1rio v\u00e1lido. Podem ter casos que n\u00e3o consiga identificar, mas neste caso ele abrir\u00e1 op\u00e7\u00e3o de teste de reconhecimento.<\/p>\n<p>Vamos aprender como implementar esse recurso do\u00a0<strong>reCaptcha Invis\u00edvel<\/strong>, e realizar a valida\u00e7\u00e3o da informa\u00e7\u00e3o via server-side.<\/p>\n<h2>Criar chaves de acesso<\/h2>\n<p>Primeiro passo \u00e9 gerar a chave de acesso para utiliza\u00e7\u00e3o do reCaptcha. Para isso acesse o link abaixo:<\/p>\n<p><a href=\"https:\/\/www.google.com\/recaptcha\/admin\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/www.google.com\/recaptcha\/admin\u00a0<\/a><\/p>\n<p>Voc\u00ea encontrar\u00e1 uma tela parecida com essa abaixo:<\/p>\n<p><img decoding=\"async\" class=\"alignnone wp-image-16156\" src=\"https:\/\/www.mxcursos.com\/blog\/wp-content\/uploads\/2018\/07\/register-recaptcha.jpg\" alt=\"\" width=\"619\" height=\"508\" srcset=\"https:\/\/www.mxcursos.com\/blog\/wp-content\/uploads\/2018\/07\/register-recaptcha.jpg 656w, https:\/\/www.mxcursos.com\/blog\/wp-content\/uploads\/2018\/07\/register-recaptcha-585x480.jpg 585w, https:\/\/www.mxcursos.com\/blog\/wp-content\/uploads\/2018\/07\/register-recaptcha-24x20.jpg 24w\" sizes=\"(max-width: 619px) 100vw, 619px\" \/><\/p>\n<p>Em &#8220;<em>Label&#8221;<\/em> voc\u00ea dar\u00e1 nome da identifica\u00e7\u00e3o caso deseje alterar depois. Em &#8220;<em>Choose the Type of reCAPTCHA&#8221;<\/em>, marque a op\u00e7\u00e3o &#8220;<em>Invisible reCAPTCHA&#8221;<\/em><strong>.<\/strong><\/p>\n<p>Ao marcar essa op\u00e7\u00e3o, aparecer\u00e1 a op\u00e7\u00e3o para informar os dom\u00ednios que a chave valer\u00e1.<\/p>\n<p><img decoding=\"async\" class=\"alignnone size-medium wp-image-16161\" src=\"https:\/\/www.mxcursos.com\/blog\/wp-content\/uploads\/2018\/07\/register-recaptcha-2-421x480.jpg\" alt=\"\" width=\"421\" height=\"480\" srcset=\"https:\/\/www.mxcursos.com\/blog\/wp-content\/uploads\/2018\/07\/register-recaptcha-2-421x480.jpg 421w, https:\/\/www.mxcursos.com\/blog\/wp-content\/uploads\/2018\/07\/register-recaptcha-2-21x24.jpg 21w, https:\/\/www.mxcursos.com\/blog\/wp-content\/uploads\/2018\/07\/register-recaptcha-2.jpg 582w\" sizes=\"(max-width: 421px) 100vw, 421px\" \/><\/p>\n<p>Voc\u00ea pode adicionar quantos dom\u00ednios desejar que sejam v\u00e1lidos. Ao adicionar um dom\u00ednio, ser\u00e1 v\u00e1lido para subdom\u00ednios, como este exemplo: Foi adicionado &#8220;<em>mxcursos.com&#8221;<\/em>, logo <em>&#8220;blog.mxcursos.com&#8221;<\/em> tamb\u00e9m poder\u00e1 utilizar as chaves de acesso.<\/p>\n<p>Ap\u00f3s clicar em <em>&#8220;Register&#8221;<\/em>, voc\u00ea ser\u00e1 redirecionado p\u00e1gina onde conter\u00e1 as informa\u00e7\u00f5es de acesso e integra\u00e7\u00e3o.<\/p>\n<p><img decoding=\"async\" class=\"alignnone size-medium wp-image-16162\" src=\"https:\/\/www.mxcursos.com\/blog\/wp-content\/uploads\/2018\/07\/register-recaptcha-3-519x480.jpg\" alt=\"\" width=\"519\" height=\"480\" srcset=\"https:\/\/www.mxcursos.com\/blog\/wp-content\/uploads\/2018\/07\/register-recaptcha-3-519x480.jpg 519w, https:\/\/www.mxcursos.com\/blog\/wp-content\/uploads\/2018\/07\/register-recaptcha-3-768x710.jpg 768w, https:\/\/www.mxcursos.com\/blog\/wp-content\/uploads\/2018\/07\/register-recaptcha-3-740x684.jpg 740w, https:\/\/www.mxcursos.com\/blog\/wp-content\/uploads\/2018\/07\/register-recaptcha-3-24x22.jpg 24w, https:\/\/www.mxcursos.com\/blog\/wp-content\/uploads\/2018\/07\/register-recaptcha-3.jpg 770w\" sizes=\"(max-width: 519px) 100vw, 519px\" \/><\/p>\n<p>Apesar da imagem n\u00e3o ter carregado um pouco acima, ter\u00e3o as estat\u00edsticas de \u00edndice de spam, por exemplo. E mais abaixo, a op\u00e7\u00e3o de <em>alterar label<\/em>, <em>adicionar mais dom\u00ednios<\/em>, entre outras informa\u00e7\u00f5es.<\/p>\n<p>J\u00e1 com essas informa\u00e7\u00f5es, vamos implementar no site.<\/p>\n<h2>Criando formul\u00e1rio HTML<\/h2>\n<p>Primeiramente criaremos um formul\u00e1rio HTML, que ir\u00e1 conter apenas <em>&#8220;Nome&#8221;<\/em>, <em>&#8220;E-mail&#8221;<\/em> e um bot\u00e3o, e um pouco de CSS apenas pra n\u00e3o ficar sem formata\u00e7\u00e3o.<\/p>\n<pre class=\"lang:xhtml decode:true \">&lt;!DOCTYPE html&gt;\r\n&lt;html lang=\"pt-br\"&gt;\r\n&lt;head&gt;\r\n    &lt;meta charset=\"UTF-8\"&gt;\r\n    &lt;meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"&gt;\r\n    &lt;meta http-equiv=\"X-UA-Compatible\" content=\"ie=edge\"&gt;\r\n    &lt;title&gt;Formul\u00e1rio de Cadastro&lt;\/title&gt;\r\n    &lt;style&gt;\r\n        *{\r\n            box-sizing: border-box;\r\n        }\r\n        body{\r\n            font-family: Verdana, Tahoma, sans-serif;\r\n        }\r\n        form{\r\n            width:500px;\r\n            margin:0 auto;\r\n            border:1px solid #ccc;\r\n            padding:20px;\r\n        }\r\n\r\n        form label{\r\n             font-size:12px;\r\n             color:#333;\r\n         }\r\n        form input{\r\n            width:100%;\r\n            padding:10px 0;\r\n            border:1px solid #ccc;\r\n            margin-bottom:10px;\r\n        }\r\n        form button{\r\n            padding:10px 20px;\r\n        }\r\n    &lt;\/style&gt;\r\n&lt;\/head&gt;\r\n&lt;body&gt;\r\n\r\n    &lt;form id=\"register\" action=\"\" method=\"post\"&gt;\r\n        &lt;label for=\"name\"&gt;Nome:&lt;\/label&gt;\r\n        &lt;input type=\"text\" name=\"name\" id=\"name\" \/&gt;\r\n\r\n        &lt;label for=\"email\"&gt;E-mail:&lt;\/label&gt;\r\n        &lt;input type=\"email\" name=\"email\" id=\"email\" \/&gt;\r\n        &lt;button type=\"submit\"&gt;Enviar&lt;\/button&gt;\r\n\r\n    &lt;\/form&gt;\r\n    \r\n&lt;\/body&gt;\r\n&lt;\/html&gt;<\/pre>\n<p>O formul\u00e1rio ter\u00e1 esta apar\u00eancia:<\/p>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-16168\" src=\"https:\/\/www.mxcursos.com\/blog\/wp-content\/uploads\/2018\/07\/register-recaptcha-4.jpg\" alt=\"\" width=\"515\" height=\"231\" srcset=\"https:\/\/www.mxcursos.com\/blog\/wp-content\/uploads\/2018\/07\/register-recaptcha-4.jpg 515w, https:\/\/www.mxcursos.com\/blog\/wp-content\/uploads\/2018\/07\/register-recaptcha-4-24x11.jpg 24w\" sizes=\"(max-width: 515px) 100vw, 515px\" \/><\/p>\n<h2>Adicionando reCAPTCHA<\/h2>\n<p>Com formul\u00e1rio definido, iremos adicionar c\u00f3digo referente ao\u00a0<strong>reCAPTCHA<\/strong> .<\/p>\n<p>Existem algumas formas de realizar esse procedimento. Iremos chamar o reCAPTCHA ap\u00f3s ter realizado uma valida\u00e7\u00e3o no JavaScript .<\/p>\n<p>Iremos adicionar primeiramente o script js, que dever\u00e1 ser inserido antes da tag do fechamento da tag &lt;\/head&gt;.<\/p>\n<pre class=\"lang:xhtml decode:true \">&lt;script src='https:\/\/www.google.com\/recaptcha\/api.js'&gt;&lt;\/script&gt;\r\n<\/pre>\n<p>E dentro do formul\u00e1rio, o c\u00f3digo reCAPTCHA :<\/p>\n<pre class=\"lang:xhtml decode:true\">&lt;div id='recaptcha' class=\"g-recaptcha\"\r\ndata-sitekey=\"CHAVE DO SITE\"\r\ndata-callback=\"sendForm\"\r\ndata-size=\"invisible\"&gt;&lt;\/div&gt;<\/pre>\n<ul>\n<li>data-sitekey : ir\u00e1 adicionar a chave do site (Site Key) que voc\u00ea gerou anteriormente;<\/li>\n<li>data-callback: define uma fun\u00e7\u00e3o que ir\u00e1 executar com sucesso.<\/li>\n<li>data-size: informa que criar\u00e1 o widget invis\u00edvel.<\/li>\n<\/ul>\n<h2>Ciar o Javascript e chamando reCAPTCHA<\/h2>\n<p>Antes do fechamento da tag &lt;\/body&gt;, iremos adicionar o javascript. No primeiro momento, iremos fazer a valida\u00e7\u00e3o dos dados e executar o reCAPTCHA e na fun\u00e7\u00e3o <em>&#8220;sendForm&#8221;<\/em> s\u00f3 vamos exibir um alert.<\/p>\n<pre class=\"lang:xhtml decode:true\"> &lt;script type=\"text\/javascript\"&gt;\r\n        let form = document.querySelector('#register');\r\n\r\n        form.addEventListener('submit',  e =&gt; {\r\n            e.preventDefault();\r\n            let name = document.querySelector('#name');\r\n            let email = document.querySelector('#email');\r\n            if(!name.value || !email.value) {\r\n                alert('Nome e Email s\u00e3o Obrigatorios');\r\n                \r\n            } else{\r\n                grecaptcha.execute();\r\n            }            \r\n        });\r\n\r\n        function sendForm(){\r\n            alert(\"Passou\");\r\n        }\r\n&lt;\/script&gt;\r\n<\/pre>\n<ul>\n<li>linha 2 seleciona o formul\u00e1rio o qual o id \u00e9 #register;<\/li>\n<li>linha 4 adiciona um evento submit ao formul\u00e1rio, quando for clicado o bot\u00e3o de submit, ser\u00e1 executada uma a\u00e7\u00e3o;<\/li>\n<li>linha 5 cancela a\u00e7\u00e3o do evento sem parar a propaga\u00e7\u00e3o; o script continua;<\/li>\n<li>linha 6 e 7 seleciona o campo <em>&#8220;name&#8221;<\/em> e\u00a0<em>&#8220;email&#8221;<\/em>;<\/li>\n<li>linha 8 verifica se um dos campos est\u00e3o vazios; se estiver, exibe um alert;<\/li>\n<li>linha 12 executa a verifica\u00e7\u00e3o do\u00a0reCAPTCHA ;<\/li>\n<li>linha 16 e 17 define a fun\u00e7\u00e3o sendForm e exibe um alert informando que passou.<\/li>\n<\/ul>\n<h2>Criando a requisi\u00e7\u00e3o Ajax<\/h2>\n<p>Agora vamos para segunda etapa que \u00e9 verificar a resposta do usu\u00e1rio. Se tudo ocorrer corretamente, ser\u00e1 gerado um token no qual voc\u00ea ir\u00e1 fazer uma consulta. Se retornar <em>&#8220;Success&#8221;,<\/em>\u00a0quer dizer que \u00e9 v\u00e1lido.<\/p>\n<p>Como essa verifica\u00e7\u00e3o \u00e9 necess\u00e1rio utilizar uma linguagem server-side, vamos utilizar o PHP.<\/p>\n<p>O envio dos dados ser\u00e1 feito via Ajax para um arquivo PHP, o qual far\u00e1 a verifica\u00e7\u00e3o. Vamos retornar um alert se der tudo certo.<\/p>\n<p>Iremos realizar uma modifica\u00e7\u00e3o na fun\u00e7\u00e3o <em>&#8220;sendForm&#8221;<\/em>, que antes s\u00f3 exib\u00edamos um alert verificando se j\u00e1 passou os dados.<\/p>\n<p>Agora vamos modific\u00e1-lo para enviar os dados do formul\u00e1rio, mas o token via ajax para o arquivo chamado <em>&#8220;register.php&#8221;<\/em>, o qual ir\u00e1 realizar a consulta para ver se o token \u00e9 v\u00e1lido.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"js\">function sendForm(token){         \r\n\r\nlet name = document.querySelector('#name');\r\nlet email = document.querySelector('#email');\r\n\r\nlet dataForm = 'name='+name.value+'&amp;email='+email.value+\"&amp;token=\"+token\r\n\t\t\r\nconst url = 'register.php';\r\nconst config = {\r\n\t\t\t\tmethod : 'post',\r\n\t\t\t\theaders : {\r\n\t\t\t\t\t'Content-Type': 'application\/x-www-form-urlencoded;charset=UTF-8'\r\n\t\t\t\t},\r\n\t\t\t\tbody : dataForm\r\n\t\t};\r\n\r\nfetch(url, config).then( res  =&gt; { return res.json();  })\r\n\t\t\t\t  .then( json =&gt; {  alert(json.result); grecaptcha.reset()  });\r\n\r\n}<\/pre>\n<pre class=\"lang:js decode:true\"><\/pre>\n<ul>\n<li>linha 1 modificamos a fun\u00e7\u00e3o passando agora o token gerado pelo reCaptcha;<\/li>\n<li>linha 3 e 4 seleciona os campos dos formul\u00e1rios;<\/li>\n<li>linha 6 define os valores que ser\u00e3o enviados para o arquivo register.php;<\/li>\n<li>linha 8 define o arquivo que ser\u00e3o enviado os arquivos;<\/li>\n<li>linha 9 a15 define as configura\u00e7\u00f5es a serem enviadas, como seria via POST, tipo de conte\u00fado (Content-type), e o que ser\u00e1 enviado, que seria no body;<\/li>\n<li>linha 17 chama a fun\u00e7\u00e3o fetch, que far\u00e1 a requisi\u00e7\u00e3o passando a url e as configura\u00e7\u00f5es. Utiliza then para recuperar a Promisse, que seria Response e retornamos o m\u00e9todo json();<\/li>\n<li>linha 18 com retorno do m\u00e9todo json e tamb\u00e9m uma Promisse usamos o then para acessar o conte\u00fado. E assim exibimos um alert como resultado. Acrescentamos ainda um reset, por que o token s\u00f3 ser\u00e1 validado uma vez.<\/li>\n<\/ul>\n<h2>Criando a verifica\u00e7\u00e3o com PHP<\/h2>\n<p>Agora criaremos o arquivo register.php<\/p>\n<pre class=\"lang:php decode:true\">&lt;?php \r\n\r\n$data = array (\r\n    \"secret\" =&gt; 'CHAVE SECRETA',\r\n    \"response\" =&gt; $_POST['token']\r\n);\r\n\r\n$curl = curl_init();\r\ncurl_setopt($curl, CURLOPT_URL,\"https:\/\/www.google.com\/recaptcha\/api\/siteverify\");\r\ncurl_setopt($curl, CURLOPT_POST, true);\r\ncurl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($data));\r\ncurl_setopt($curl, CURLOPT_RETURNTRANSFER, true);\r\ncurl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);\r\ncurl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);\r\n\r\n$result = json_decode(curl_exec($curl));\r\ncurl_close($curl);\r\n\r\n\r\nif(isset($result-&gt;success) &amp;&amp; $result-&gt;success) {\r\n\r\n    \/**\r\n     * Sendo valido, voc\u00ea fazer tamb\u00e9m uma valida\u00e7\u00e3o os dados,\r\n     * no caso o nome e email, se s\u00e3o valido, e assim registrar \r\n     * no banco de dados\r\n     *\/\r\n\r\n    $json = ['result' =&gt; 'Seus dados foram salvos com sucesso'] ;\r\n     \r\n} else {\r\n    $json = ['result' =&gt; 'Por favor, tente novamente'] ;\r\n}\r\n\r\nexit(json_encode($json));<\/pre>\n<ul>\n<li>linha 3 a 5 \u00e9 definido um array com a chave secreta (Secret key) e o token gerado pelo reCaptcha. A chave secreta \u00e9 a chave criada no come\u00e7o do tutorial;<\/li>\n<li>linha 8 a 14 s\u00e3o as configura\u00e7\u00e3o do CURL, o qual fazemos uma requisi\u00e7\u00e3o para o siteverify do Google e enviamos os dados do array para eles;<\/li>\n<li>linha 16 resgatamos a resposta e que decodifica o Json que \u00e9 retornado;<\/li>\n<li>linha 17 fecha a conex\u00e3o;<\/li>\n<li>linha 20 verifica se existe a success e se ele vem preenchido. Se existir, \u00e9 porque foi validado;<\/li>\n<li>linha 28 definimos um retorno que ser\u00e1 exibido no alert;<\/li>\n<li>linha 31 define uma mensagem para o usu\u00e1rio tentar novamente;<\/li>\n<li>linha 34 converte o array em json e termina o script;<\/li>\n<\/ul>\n<p>Dessa forma, voc\u00ea consegue fazer uma dupla verifica\u00e7\u00e3o, tanto via client-side, quanto via server-side.<\/p>\n<h2>Conclus\u00e3o<\/h2>\n<p>O\u00a0<strong>reCaptcha<\/strong> \u00e9 uma \u00f3tima alternativa mais amig\u00e1vel para garantir que n\u00e3o recebamos spans ou a\u00e7\u00e3o de rob\u00f4s em nosso sites.<\/p>\n<p>O que foi demostrado neste tutorial \u00e9 uma das formas. Voc\u00ea pode escolher a n\u00e3o fazer verifica\u00e7\u00e3o via <em>server-side<\/em>, deixa s\u00f3 pelo <em>client-side<\/em>. Tamb\u00e9m ir\u00e1 funcionar muito bem.<\/p>\n<p>Voc\u00ea pode consultar outras formar de utiliz\u00e1-lo acessando a documenta\u00e7\u00e3o abaixo:<\/p>\n<p><a href=\"https:\/\/developers.google.com\/recaptcha\/docs\/invisible\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/developers.google.com\/recaptcha\/docs\/invisible<\/a><\/p>\n<p>Caso esteja utilizando um WordPress, existem plugins que configuram este recurso:<\/p>\n<blockquote class=\"wp-embedded-content\" data-secret=\"cWGzMAQ7LH\"><p><a href=\"https:\/\/wordpress.org\/plugins\/invisible-recaptcha\/\" target=\"_blank\" rel=\"noopener\">Invisible reCaptcha for WordPress<\/a><\/p><\/blockquote>\n<p><iframe class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; clip: rect(1px, 1px, 1px, 1px);\" title=\"&#8220;Invisible reCaptcha for WordPress&#8221; &#8212; Plugin Directory\" src=\"https:\/\/wordpress.org\/plugins\/invisible-recaptcha\/embed\/#?secret=aD0xFBWjib#?secret=cWGzMAQ7LH\" data-secret=\"cWGzMAQ7LH\" width=\"600\" height=\"338\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe><\/p>\n<blockquote class=\"wp-embedded-content\" data-secret=\"sE6MJ3bo2k\"><p><a href=\"https:\/\/br.wordpress.org\/plugins\/invisible-recaptcha-by-threatpress\/\" target=\"_blank\" rel=\"noopener\">Google Invisible reCaptcha by ThreatPress<\/a><\/p><\/blockquote>\n<p><iframe class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; clip: rect(1px, 1px, 1px, 1px);\" title=\"&#8220;Google Invisible reCaptcha by ThreatPress&#8221; &#8212; Plugin Directory\" src=\"https:\/\/br.wordpress.org\/plugins\/invisible-recaptcha-by-threatpress\/embed\/#?secret=MSiTSRzIxS#?secret=sE6MJ3bo2k\" data-secret=\"sE6MJ3bo2k\" width=\"600\" height=\"338\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe><\/p>\n<blockquote class=\"wp-embedded-content\" data-secret=\"JYOhwE9jY7\"><p><a href=\"https:\/\/wordpress.org\/plugins\/cf7-invisible-recaptcha\/\" target=\"_blank\" rel=\"noopener\">CF7 Invisible reCAPTCHA<\/a><\/p><\/blockquote>\n<p><iframe class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; clip: rect(1px, 1px, 1px, 1px);\" title=\"&#8220;CF7 Invisible reCAPTCHA&#8221; &#8212; Plugin Directory\" src=\"https:\/\/wordpress.org\/plugins\/cf7-invisible-recaptcha\/embed\/#?secret=i2gd5Pm7fP#?secret=JYOhwE9jY7\" data-secret=\"JYOhwE9jY7\" width=\"600\" height=\"338\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe><\/p>\n<p>Abra\u00e7os e at\u00e9 a pr\u00f3xima!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>O reCaptcha \u00e9 um tecnologia disponibilizada pelo Google para prote\u00e7\u00e3o contra spam e abusos. Ele realiza Machine Learning, que faz uma combina\u00e7\u00e3o de an\u00e1lise de acordo com o que vai sendo utilizando e assim aprendendo a identificar usu\u00e1rios inv\u00e1lidos. Al\u00e9m disso, toda vez que voc\u00ea precisa escrever, identificar imagem, isso \u00e9 utilizado para digitalizar texto, [&hellip;]<\/p>\n","protected":false},"author":67,"featured_media":19148,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[678],"tags":[1216,1288],"class_list":["post-16154","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-desenvolvimento","tag-google","tag-recaptcha"],"_links":{"self":[{"href":"https:\/\/www.mxcursos.com\/blog\/wp-json\/wp\/v2\/posts\/16154","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mxcursos.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.mxcursos.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.mxcursos.com\/blog\/wp-json\/wp\/v2\/users\/67"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mxcursos.com\/blog\/wp-json\/wp\/v2\/comments?post=16154"}],"version-history":[{"count":0,"href":"https:\/\/www.mxcursos.com\/blog\/wp-json\/wp\/v2\/posts\/16154\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.mxcursos.com\/blog\/wp-json\/wp\/v2\/media\/19148"}],"wp:attachment":[{"href":"https:\/\/www.mxcursos.com\/blog\/wp-json\/wp\/v2\/media?parent=16154"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mxcursos.com\/blog\/wp-json\/wp\/v2\/categories?post=16154"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mxcursos.com\/blog\/wp-json\/wp\/v2\/tags?post=16154"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}