Olá amigos, neste mês de Outubro irei explorar um assunto muito comum quando
nos deparamos em praticamente qualquer sistema web, o uso dos denominados
“CAPTCHAs”. Para quem não sabe e de acordo com inúmeras referências encontradas
na internet, o “CAPTCHA” significa um acrônimo da expressão
"Completely Automated Public
Turing test to tell Computers and Humans Apart" traduzindo
significa: “Teste de
Turing público completamente automatizado para diferenciação
entre computadores e humanos”, simplificando, uma forma de distinguir se uma tarefa
está sendo executada por um usuário ou um robô. Veremos neste artigo mais algumas
finalidades deste recurso aplicando um exemplo prático utilizando o Microsoft
Visual Studio 2015 junto com uma aplicação Asp.Net e a linguagem C#. Utilizarei
a biblioteca “Captcha” que poderá ser adquirida e instalada através do “Nuget”.
Finalidade
A finalidade do uso do CAPTCHA são inúmeras, para quem tiver maiores
interesses recomendo visitar o link: http://www.captcha.net/, o qual aborda
diversas situações deste recurso. O intuito deste artigo seria implementá-lo a
fim de proteger o cadastro de um usuário em um site ou sistema
web. Um exemplo básico seria a criação de um e-mail na Microsoft. Até poucos
anos atrás, a maioria desses serviços sofriam de um tipo específico de ataque:
os "bots", os quais se inscreviam para milhares de
contas de e-mails a cada minuto. A solução para este problema foi usar CAPTCHAs
para garantir que somente os seres humanos pudessem obter estas contas, a fim
de evitar abusos por scripts automatizados. Em um sistema
web aberto ao público também podemos encontrar problemas como os descritos
anteriormente e por sorte podemos diminuir o risco dos mesmos com o uso dos
CAPTCHAs.
Baixando e
Instalando o “Captcha” através do Nuget
Abra o Miscrosoft Visual Studio 2015 e crie um website do início
clicando em “File/New/Website...”. Para fins didáticos iremos criar uma
aplicação do tipo Asp.net. Localize o menu “Tools/Nuget Package Manager/Manage
Nuget Packages for Solution...”. Pesquise pelo item “Captcha” na caixa de
pesquisa, ver Imagem 01.
![]() |
Figura 01: Biblioteca Captcha. |
Após selecionar a biblioteca, localize na região direita a “solution”
para instalá-la. Ver Imagem 02.
![]() |
Figura 02: Instalando o “Captcha”. |
Após seguir estas etapas, automaticamente será aberta uma página
contendo todas as informações para o uso desta biblioteca em diversas
plataformas, inclusive na Asp.Net. Dentro do próprio Visual Studio também será
aberto um arquivo “txt” também contendo instruções de implementações. Ver
Figura 03.
![]() |
Figura 03: Instruções de uso. |
Criando um exemplo
Seguindo como base as instruções de uso desta biblioteca, adicione no
webform o captcha, um textbox e um button. Ver Imagem 04.
![]() |
Figura 04: Layout proposto. |
Abaixo a codificação referente:
<div>
<table class="auto-style1">
<tr>
<td>
<BotDetect:WebFormsCaptcha ID="ExemploCaptcha" runat="server" Width="290px" />
</td>
</tr>
<tr>
<td>
<asp:TextBox ID="CaptchaCodeTextBox" runat="server" Width="272px" /></td>
</tr>
<tr>
<td>
<asp:Button ID="Button1" runat="server" Text="Testar" Width="205px" OnClick="Button1_Click1" />
</td>
</tr>
</table>
</div>
Listagem
01.
A Tag “BotDetect” fará todo o trabalho do captcha. No próprio componente
teremos os caracteres para validação, o botão atualizar e embaralhar letras e
outro botão para emitir o som das letras (para deficientes visuais).
Usaremos uma quantidade mínima de linhas, no evento “Click” do botão “testar”
teremos a seguinte codificação. Listagem 02.
protected void Button1_Click1(object sender, EventArgs e)
{
bool validar = ExemploCaptcha.Validate(CaptchaCodeTextBox.Text);
CaptchaCodeTextBox.Text = null;
if (!validar)
{
Response.Write("Erro
na validação!");
}
else
{
Response.Write("Validação
correta!");
}
}
Listagem 02.
Criaremos uma variável booleana que servirá para validar o texto
digitado. Implementaremos o método “Validate” do componente “ExemploCaptcha” o
qual nos retornará “verdadeiro” ou “falso”. Uma ideia para retornar o resultado
seria pelo método “Response.Write” através de uma condição. Ver Figura 05.
![]() |
Figura 05: Resultado final. |
Conclusões
O recurso apresentado neste artigo é utilizado em quase na totalidade de
sites que existem a necessidade da utilização de um cadastro por exemplo. É
comum também encontrarmos sistemas web que faz o uso deste mecanismo. O
“Captcha” foi inventado com o intuito de diminuir o ataque de robôs, scripts
maliciosos, entre outros. Existem inúmeras bibliotecas no Visual Studio para
esta tarefa, procurei explorar a “Capctha”, sendo de fácil aquisição,
instalação e utilização.
Desejo a todos uma ótima leitura. Abraços
Referências
Nenhum comentário:
Postar um comentário