.net: utilizando reCaptcha para o login

A aplicação de digitar as letras ou números que aparecem em  uma imagem é chamada captcha. Os sites a utilizam para evitar cadastros ou acessos feitos automaticamente (por sistemas computacionais).

Substituí o sistema que desenvolvi pelo reCaptcha, sistema de captcha utilizado por diversos sites, por dois motivos:

  1. Ao digitar as palavras no reCaptcha ajudamos a digitalizar livros para o Internet Archive e antigas edições do The New York Times:
  2. O sistema é rápido, funcional e fácil de instalar:

Instalação¹

O site do reCaptcha oferece plugins para diversas aplicações Web, como o WordPress, bibliotecas para as principais liguagens de desenvolvimento e uma API para os demais casos. A biblioteca para asp.net serve tanto para vb.net quanto c#.

1 – Download e referência

Baixe a biblioteca e referencie a biblioteca ( library/bin/Release/Recaptcha.dll) no seu site asp.net.

2 – Exibição do controle reCaptcha

Inserir na primeira linha da página que irá exibir o controle a seguinte linha:

<%@ Register TagPrefix="recaptcha" Namespace="Recaptcha" Assembly="Recaptcha" %>

Dentro da tag <form runat="server"> da página, no local aonde você deseja que o controle com o reCaptcha seja exibido, cole:

<recaptcha:RecaptchaControl
ID="recaptcha"
runat="server"
PublicKey=""
PrivateKey=""
/>

É preciso informar a publicKey e a PrivateKey que são obtidas após você se cadastrar no site do reCaptcha. Ao executar seu projeto o controle padrão do reCaptcha será exibido.

3 – Como verificar se as palavras digitadas estão ok

É simples, basta verificar se Page.IsValid, como aparece no exemplo que acompanha a documentação da biblioteca:

If Page.IsValid Then
lblResult.Text = "Ok! pode prosseguir"
lblResult.ForeColor = Drawing.Color.Green
Else
lblResult.Text = "As palavras estão incorretas"
lblResult.ForeColor = Drawing.Color.Red
End If

4 – Mudar o idioma para português

Abra o projeto da biblioteca do reCaptcha e edite a classe RecaptchaControl.cs.:

//Localize o seguinte método:
protected override void RenderContents(HtmlTextWriter output)
// Após a linha:
output.WriteLine("theme : ‘{0}’,", theme == null ? "" : theme);
// Inclua a linha que define o idioma que será utilizado no controle
output.WriteLine("lang : ‘{0}’,", "pt");

Faça o Build da biblioteca e substitua a dll que está em seu projeto pela que foi criada: ( library/bin/Debug/Recaptcha.dll). Pronto, agora o controle está em português.

Falhas / sugestões

A função de áudio é horrível, testei com 4 pessoas e ninguém conseguiu entender o que era ditado.

Mesmo mudando o idioma para o português, as palavras para digitar são em inglês. Seria interessante utilizar o reCaptcha ou outra aplicação semelhante para ajudar a digitalizar textos em português.

Evolução do captcha

Com a evolução dos aplicativos de reconhecimento de texto em imagens (OCR), vários sistemas de captcha ficaram obsoletos. A primeira solução foi distorcer ainda mais as imagens, o que atrapalha a experiência do usuário.

A tendência é fazer perguntas variáveis, baseadas na palavra exibida no capcha, como:

  • informar somente as vogais,
  • os números;
  • os x primeiros caracteres, etc.

Já li posts (perdi a fonte) sugerindo a utilização de contas simples no lugar das imagens, ex:

  • o valor de 5 x5;
  • subtrair três de dois.

Saiba +

Related Posts with Thumbnails

6 Comments

  1. Tecnico Jampa says: - reply

    dá pra instalar no Joomla 1.5?
    O Community Builder 1.2 já não incorpora um Captcha?

  2. Caio Cezar says: - reply

    Muito util o artigo.

    Estou com uma duvida:

    Meu site desenvolvido em asp.net (VB) no VS2008 e eu gostaria de mudar o idioma do recapchua para pt. Quando vc fala em "Abra o projeto da biblioteca do reCaptcha e edite a classe RecaptchaControl.cs."

    Qual seria este arquivo do projeto da biblioteca? Seria o arquivo dll? Abro ele no VS2008 mesmo?

    Grato

    • Vitor says: - reply

      Olá, Caio!

      Não é o .dll, mas o projeto que gera o dll.

      Quando você baixa a biblioteca, o código fonte vem junto, a classe RecaptchaControl.cs é um dos arquivos.

      Após fazer a alteração, o Build gera uma nova dll.

  3. Vitor, boa tarde.

    Estou tentando traduzir o reCaptcha do Google e achei o seu artigo falando como traduzir. Acontece que você fala de um projeto mas mesmo no link dado aqui a única coisa que existe é uma .dll. Você teria esse arquivo para disponibilizar ou saberia outra forma de traduzir. Fico no aguardo.

    Obrigado e até mais.

    • Vitor says: - reply

      Olá, Thiago!

      Logo após publicar esse artigo acabei abandonado o reCaptha, pois os usuários do sistema não se adaptaram ao sistema.

      Infelizmente não conheço outra forma para efetuar a tradução, lembrando que mesmo com a tradução, o texto a ser digitado ainda é em inglês.

Leave A Reply




Page optimized by WP Minify WordPress Plugin