Captcha animado em português para o seu siteFree
Captcha Animado é uma forma mais segura de se distinguir robôs spamers de humanos. É um componente de alta tecnologia, de fácil leitura por humanos mas muito difícil de serem lidos por robôs.
Por isso desenvolvemos o nosso Captcha Animado em Português. E agora o estamos disponibilizando para que outros sites da web possam incorporar esta tecnologia sem nenhum custo para a versão básica.
O Captcha Animado em português da Lopes & Souto em sua versão básica é gratuito e totalmente funcional. Pode ser incorporado em seu: site, portal, ou sistema. Basta se cadastrar e baixar o código de incorporação.
Soluções personalizadas podem ser desenvolvidas. Para maiores informações, entre em contato conosco (ver parte inferior desta página).
Código de incorporação
Estes são exemplos de como incorporar o captcha animado em sua página. Antes de iniciar cadastre-se para obetr as chaves para o seu domíno. Para cada domínio uma chave publica e uma chave privada devem ser cadastradas.
Para maiores informações sobre as configurações disponíveis visite a página de exemplos de configuração. Lá estarão disponíveis todas as opções de skins, desafios e texto, assim como a geração automática do código de incorporação.
<% ' Titulo: Intergação do Captcha Animado em Português ' Autor: Dante Souto ' email: dante@lopessouto.com.br ' data: 03/10/2014 %> <html> <head> <title>Captcha Animado em Português</title> <link rel="stylesheet" type="text/css" href="https://www.lopessouto.com.br/captcha/captcha.css" /> </head> <body> <% Dim strPublicKey Dim strPrivateKey ' chave publica e privada recebida no momento de cadastro strPublicKey = "2154" strPrivateKey = "4512" ' ATENÇÃO: não divulgue esta chave If Request("envia") <> "" Then If CheckCaptcha() Then Response.Write "<span style='color:#00FF00;'>" Response.Write "validado com sucesso o captcha digitado" Response.Write "</span><br>" Else Response.Write "<span style='color:#FF0000;'>" Response.Write "O captcha digitado não foi validado" Response.Write "</span><br>" End If End If Function CheckCaptcha() Dim strKey Dim strWord Dim strIP Dim objDoc Dim strDoc Dim bRet Randomize() strKey = Request("__chave_desafio_ls") strWord = Request("__desafio_ls") bRet = False ' Usa Microsoft.XMLDOM para ler o xml enviado pelo servidor Set objDoc = Server.CreateObject("Microsoft.XMLDOM") objDoc.setProperty "ServerHTTPRequest", True objDoc.async = False ' usando numeros randomicos para prevenir cache em proxy's strDoc = "https://www.lopessouto.com.br/captcha/valida_captcha.aspx" strDoc = strDoc & "?word=" & strWord strDoc = strDoc & "&key=" & strKey strDoc = strDoc & "&sitekey=" & strPrivateKey strDoc = strDoc & "&r=" & Rnd() If objDoc.Load(strDoc) Then ' retorna OK se a chave privada deste site for autenticada If objDoc.selectNodes("/LopesSoutoCaptcha/sitekey").Item(0).Text = "OK" Then ' site validado If objDoc.selectNodes("/LopesSoutoCaptcha/result/auth").Item(0).Text = "TRUE" Then ' a palavra digitada pelo cliente confere ' ip registrado pelo serviço strIP = objDoc.selectNodes("/LopesSoutoCaptcha/result/ip").Item(0).Text bRet = True Else bRet = False End If Else Response.Write "<span style='color:#FF0000;'>" Response.Write "CheckCaptcha: A sua chave privada não é válida!" Response.Write "</span><br>" End If Else Response.Write "<span style='color:#FF0000;'>" Response.Write "CheckCaptcha: Erro ao conectar o seridor!" Response.Write "</span><br>" End If CheckCaptcha = bRet End Function %> <br> <form name="valida" method="post"> <script type="text/javascript" src="https://www.lopessouto.com.br/captcha/captcha_loader.aspx?k=<%=strPublicKey%>"></script> <div id="__captcha_ls" disabled="false"></div> <img src="https://www.lopessouto.com.br/captcha/reload.jpg" name="__recarga_ls" id="__recarga_ls" onclick="load_Captcha_LS();" /> <input type="hidden" name="__chave_desafio_ls" id="__chave_desafio_ls" value="" /> <input type="text" name="__desafio_ls" id="__desafio_ls" placeholder="digite o texto" /> <input name="envia" id="envia" type="submit" value="Enviar"> </form> </body> </html>EXECUTE O EXEMPLO CLICANDO AQUI
<?php // Titulo: Intergação do Captcha Animado em Português // Autor: Dante Souto // email: dante@lopessouto.com.br // data: 03/10/2014 ?> <html> <head> <title>Captcha Animado em Português</title> <link rel="stylesheet" type="text/css" href="http://www.lopessouto.com.br/captcha/captcha.css" /> </head> <body> <?php // chave publica e privada recebida no momento de cadastro $strPublicKey = "2154"; $strPrivateKey = "4512"; // não divulgue esta chave if (isset($_POST["envia"])) { if(CheckCaptcha()) { echo("<span style='color:#00FF00;'>validado com sucesso o captcha digitado</span><br>"); } else { echo("<span style='color:#FF0000;'>O captcha digitado não foi validado</span><br>"); } } function CheckCaptcha() { $strKey = $_POST["__chave_desafio_ls"]; $strWord = $_POST["__desafio_ls"]; $strIP = ""; $bRet = false; // usa DOMDocument para ler o xml enviado pelo servidor // no php.ini a constante "allow_url_fopen" deve estar setada como "On" $objDoc = new DOMDocument(); // usando numeros randomicos para prevenir cache em proxy's $strDoc = "http://www.lopessouto.com.br/captcha/valida_captcha.aspx"; $strDoc = $strDoc . "?word=" . $strWord; $strDoc = $strDoc . "&key=" . $strKey; $strDoc = $strDoc . "&sitekey=" . $GLOBALS["strPrivateKey"]; $strDoc = $strDoc . "&r=" . mt_rand(); if ($objDoc->load($strDoc)) { // para ver o XML carregado: //print $objDoc->saveXML(); $sdoc = simplexml_import_dom($objDoc); // retorna OK se a chave privada deste site for autenticada if ($sdoc->sitekey=="OK") { // site validado if ($sdoc->result[0]->auth=="TRUE") { // a palavra digitada pelo cliente confere // ip registrado pelo serviço $strIP = $sdoc->result[0]->ip; $bRet = true; } else { $bRet = false; } } else { echo("<span style='color:#FF0000;'>CheckCaptcha: A sua chave privada não é válida!</span><br>"); } } else { echo("<span style='color:#FF0000;'>CheckCaptcha: Erro ao conectar o seridor</span><br>"); } return $bRet; } ?> <br /> <form name="valida" method="post"> <script type="text/javascript" src="http://www.lopessouto.com.br/captcha/captcha_loader.aspx?k=<?=$strPublicKey?>"></script> <div id="__captcha_ls"></div> <img src="http://www.lopessouto.com.br/captcha/reload.jpg" name="__recarga_ls" id="__recarga_ls" onclick="load_Captcha_LS();" /> <input type="hidden" name="__chave_desafio_ls" id="__chave_desafio_ls" value="" /> <input type="text" name="__desafio_ls" id="__desafio_ls" placeholder="digite o texto" /> <input name="envia" id="envia" type="submit" value="Enviar"> </form> </body> </html>EXECUTE O EXEMPLO CLICANDO AQUI
<%@ Page Language="vb"%> <%@ Import namespace="System.Xml" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <% ' Titulo: Intergação do Captcha Animado em Português ' Autor: Dante Souto ' email: dante@lopessouto.com.br ' data: 03/10/2014 %> <head runat="server"> <title>Captcha Animado em Português</title> <link rel="stylesheet" type="text/css" href="https://www.lopessouto.com.br/captcha/captcha.css" /> </head> <body> <script runat="server"> Public strPublicKey As String = "2154" Private strPrivateKey As String = "4512" Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load If Request("envia") <> "" Then If CheckCaptcha() Then Response.Write("<span style='color:#00FF00;'>validado com sucesso o captcha digitado</span><br>") Else Response.Write("<span style='color:#FF0000;'>O captcha digitado não foi validado</span><br>") End If End If End Sub Private Function CheckCaptcha() As Boolean Dim strKey As String Dim strWord As String Dim strIP As String = "" Dim objDoc As New XmlDocument Dim strDoc As String Dim bRet As Boolean = False Randomize() strKey = Request("__chave_desafio_ls") strWord = Request("__desafio_ls") bRet = False ' usando numeros randomicos para prevenir cache em proxy's strDoc = "https://www.lopessouto.com.br/captcha/valida_captcha.aspx" strDoc = strDoc & "?word=" & strWord strDoc = strDoc & "&key=" & strKey strDoc = strDoc & "&sitekey=" & strPrivateKey strDoc = strDoc & "&r=" & Rnd() Try objDoc.Load(strDoc) Try If objDoc.GetElementsByTagName("sitekey").Item(0).InnerText = "OK" Then If objDoc.GetElementsByTagName("auth").Item(0).InnerText = "TRUE" Then strIP = objDoc.GetElementsByTagName("ip").Item(0).InnerText bRet = True Else bRet = False End If Else Response.Write("<span style='color:#FF0000;'>CheckCaptcha: A sua chave privada não é válida!</span><br>") End If Catch ex As Exception Response.Write("Ocorreu um erro: " & ex.Message & " " & ex.StackTrace) End Try Catch ex As Exception Response.Write("<span style='color:#FF0000;'>CheckCaptcha: Erro ao conectar o seridor</span><br>") End Try CheckCaptcha = bRet End Function </script> <br> <form name="valida" method="post"> <script type="text/javascript" src="https://www.lopessouto.com.br/captcha/captcha_loader.aspx?k=<%=strPublicKey%>"></script> <div id="__captcha_ls"></div> <img src="https://www.lopessouto.com.br/captcha/reload.jpg" name="__recarga_ls" id="__recarga_ls" onclick="load_Captcha_LS();" /> <input type="hidden" name="__chave_desafio_ls" id="__chave_desafio_ls" value="" /> <input type="text" name="__desafio_ls" id="__desafio_ls" placeholder="digite o texto" /> <input name="envia" id="envia" type="submit" value="Enviar" /> </form> </body> </html>EXECUTE O EXEMPLO CLICANDO AQUI
<%@ Page Language="C#"%> <%@ Import namespace="System.Xml" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <% // Titulo: Intergação do Captcha Animado em Português // Autor: Dante Souto // email: dante@lopessouto.com.br // data: 03/10/2014 %> <head runat="server"> <title>Captcha Animado em Português</title> <link rel="stylesheet" type="text/css" href="https://www.lopessouto.com.br/captcha/captcha.css" /> </head> <body> <script language="c#" runat="server"> public string strPublicKey = "2154"; private string strPrivateKey = "4512"; public string strScrSource; public void Page_Load(object sender, EventArgs e) { if (Request["envia"] != null) { if (CheckCaptcha()) { Response.Write("<span style='color:#00FF00;'>validado com sucesso o captcha digitado</span><br>"); } else { Response.Write("<span style='color:#FF0000;'>O captcha digitado não foi validado</span><br>"); } } } private bool CheckCaptcha() { string strKey = null; string strWord = null; string strIP = null; XmlDocument objDoc = new XmlDocument(); string strDoc = null; bool bRet = false; Random rnd = new Random(); strKey = Request["__chave_desafio_ls"]; strWord = Request["__desafio_ls"]; bRet = false; // usando numeros randomicos para prevenir cache em proxy's strDoc = "https://www.lopessouto.com.br/captcha/valida_captcha.aspx"; strDoc = strDoc + "?word=" + strWord; strDoc = strDoc + "&key=" + strKey; strDoc = strDoc + "&sitekey=" + strPrivateKey; strDoc = strDoc + "&r=" + rnd.Next(); try { objDoc.Load(strDoc); try { if (objDoc.GetElementsByTagName("sitekey").Item(0).InnerText == "OK") { if (objDoc.GetElementsByTagName("auth").Item(0).InnerText == "TRUE") { bRet = true; } else { bRet = false; } strIP = objDoc.GetElementsByTagName("ip").Item(0).InnerText; } else { Response.Write("<span style='color:#FF0000;'>CheckCaptcha: A sua chave privada não é válida!</span><br>"); } } catch (Exception ex) { Response.Write("Ocorreu um erro: " + ex.Message + " " + ex.StackTrace); } } catch (Exception ex) { Response.Write("<span style='color:#FF0000;'>CheckCaptcha: Erro ao conectar o seridor</span><br>"); } return bRet; } </script> <br> <form name="valida" method="post"> <script type="text/javascript" src="https://www.lopessouto.com.br/captcha/captcha_loader.aspx?k=<%=strPublicKey%>"></script> <div id="__captcha_ls"></div> <img src="https://www.lopessouto.com.br/captcha/reload.jpg" name="__recarga_ls" id="__recarga_ls" onclick="load_Captcha_LS();" /> <input type="hidden" name="__chave_desafio_ls" id="__chave_desafio_ls" value="" /> <input type="text" name="__desafio_ls" id="__desafio_ls" placeholder="digite o texto" /> <input name="envia" id="envia" type="submit" value="Enviar" /> </form> </body> </html>EXECUTE O EXEMPLO CLICANDO AQUI
<!--CAPTCHA AUTENTICADO--> <LopesSoutoCaptcha> <date>7/10/2014 16:49:04</date> <sitekey>OK</sitekey> <result> <auth>TRUE</auth> <ip>152.249.78.239</ip> <limite>99995</limite> </result> </LopesSoutoCaptcha> <!--CAPTCHA NÃO AUTENTICADO--> <LopesSoutoCaptcha> <date>7/10/2014 16:50:09</date> <sitekey>OK</sitekey> <result> <auth>FALSE</auth> </result> </LopesSoutoCaptcha> <!--SITE NÃO AUTENTICADO--> <LopesSoutoCaptcha> <date>7/10/2014 16:50:09</date> <sitekey>NOK</sitekey> </LopesSoutoCaptcha>