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>
