IMPLEMENTANDO RECAPTCHA NO SCRIPTCASE

Evitando Bots em seu Sistema



Nesse artigo, eu Haroldo Passos vou demonstrar como utilizar a api do Google para o famoso captcha: EU NÃO SOU ROBÔ.



O Recaptcha é um recurso com sistema de caixas de diálogos desenvolvido pela Universidade Carnegie Mellon em Pittsburgh e implementa um algoritmo aleatório muito utilizado em sistemas de autenticação, a fim de evitar ataques de "Brute Force", ou seja, visa garantir que um "ser humano" está naquele momento interagindo com o sistema em tempo real. Em 2009 o Google adquiriu essa ferramenta e atualmente é amplamente usada, especialmente por New York Times e Google Books.



*** A api apresentada só funcionará em browser desktop.


Scriptcase - Recursos Avançados

  • Uso de classes externas
  • Inserindo JS na estrutura do Código gerado pelo Scriptcase
  • Instanciando Classe PHP para capturar a resposta do reCaptcha

[Aplicacão Scriptcase do Tipo Controle com reCaptcha] [Aplicacão Scriptcase do Tipo Controle com reCaptcha confirmado]

No Google


Criando chaves (keys) para acesso e controle da Api Google


Nesse link você obterá as chaves secreta e do site para confirmação da Api Google:

https://www.google.com/recaptcha



[Aplicacão Scripcase do Tipo Controle com reCaptcha] [Aplicacão Scripcase do Tipo Controle com reCaptcha confirmado] [Aplicacão Scripcase do Tipo Controle com reCaptcha confirmado] [Aplicacão Scripcase do Tipo Controle com reCaptcha confirmado]

No Scriptcase


Criando uma Aplicação de Controle


Adquira a biblioteca recaptchalib.php aqui.

Crie um biblioteca externa no Scriptcse, sugiro criar como pública, com o nome: reCaptcha e adicione o arquivo php do link acima como recaptchalib.php

Crie uma aplicação de controle com dois campos com o exemplo, Assunto e Mensagem.

[Aplicacão Scripcase do Tipo Controle]

Adicionando a Bilioteca recapchalib.php a aplicação

Insira o código abaixo no evento onscriptinit. Incluindo acesso a api javascript do Google e incorporahdo a Biblioteca Externa recaptchalib.php

?>
<script src='https://www.google.com/recaptcha/api.js'></script>
<?php

sc_include_library
('sys','reCaptcha','recaptchalib.php');

Capturando e tratando o retorno da api reCaptcha

Insira o código abaixo no evento onvalidate.

if (isset($_POST['g-recaptcha-response'])) {
        
$captcha_data $_POST['g-recaptcha-response'];
    }

    if (!
$captcha_data) {
        
sc_error_message('Garanta que você não é um robô, clique na caixa de seleção!');
    }else{

        
$secret "### Sua Secret Key ###";
     
        
$response null;
     
        
$reCaptcha = new ReCaptcha($secret);

        if (
$_POST["g-recaptcha-response"]) {
            
$response $reCaptcha->verifyResponse(
                
$_SERVER["REMOTE_ADDR"],
                
$_POST["g-recaptcha-response"]
            );
        }

        if (
$response != null && $response->success) {
            
sc_alert("Mensagem enviada com sucesso!");
        } else {
            
sc_error_message"Usuário mal intencionado detectado. A mensagem não foi enviada.");
        }
    }

Adicionando caixa de confirmaçao Robô/Humano

Insira o código abaixo no ajuda/texto do campo Mensagem da Aplicação

<br>
<
div class="g-recaptcha" data-sitekey="###sua sitekey###"></div>
[Aplicacão Scripcase do Tipo Controle]

Entendendo o conceito


Como detectar se não é um Robô acessando sua aplicação?

Catpcha de imagens distorcidas tem se tornado cada vêz menos usual devido a dificuldade que o usuário/internauta tem para convencer que é um ser Humano acesdsando a refereida página.

A Api do Google tornou esse processo de confirmação mais fácil apenas com um click em uma caixa de verificação. Na verdade o Google já sabe que antes de chegar em determinada página que você já estava interagindo com o Browser.

Pode acontecer, quando a api desconfia do acesso, forçar a exibição de uma tela com imagens que somente um ser Humano reconheceria.

Atualizações recentes permitem deixar invisivel até a caixa de confirmação adicionando a seu botão de submissão do formulário o código para acesso a api.

Em suá área administrativa de geração das keys de validação é possível configurar o nível de segurança desejado, deixando mais simples ou mais complexa a verificação.