hcfpastel 1 Denunciar post Postado Setembro 1, 2010 Bom dia, gente.. Bem... desenvolvi um componente onde uso captcha e está funcionando perfeitamente... A lógica que usei foi a seguinte: - Tenho um arquivo que gera o código, cria uma SESSION com este código, escreve o código no captcha e retorna a imagem. - Via jQuery.load() eu carrego na div do formulário o arquivo que gera o captcha (Ajax) - Na hora da validação, eu faço com Ajax, para verificar se o que foi digitado no campo Código é igual ao que foi gerado na SESSION.. Se sim, depois de validar todos os campos, dou o submit no form, que envia o conteúdo para uma function responsável pela validação server-side do form e o cadastro do mesmo caso tudo esteja OK... A questão é... Quase todo dia está aparecendo aqueles códigos chatos gerados por robôs... estou usando a classe CaptchaSecurityImages.php para gerar o captcha.. está tudo OK... Mas mesmo assim, ainda têm robôs que estão conseguindo burlar o sistema... Já não sei mais como fazer pra resolver isso... Uma coisa que pensei é que, os robôs estejam usando leitores de tela... e façam a validação das letras que estão geradas no captcha (por não estarem distorcidas, e serem razoavelmente fáceis de ser interpretadas, tanto por humanos como por robôs um pouco mais bem programados... então... uma solução seria distorcer o captcha como este aqui, ó: http://www.trainingleader.com.br/artigos-sobre-lideranca-autoconhecimento-motivacao-layr-malta/136-lideranca-e-autoconhecimento#addcomments onde as letras ficam meio que 'grudadas' uma na outra... Dei uma olhada na documentação da biblioteca GD... mas não conseguí ainda descobrir um método dessa biblioteca que distorce o que é escrito na imagem, etc... Dei uma fuçada no código fonte desse componente aí que gera o captcha (este site que mostrei é em Joomla, e foi eu que desenvolvi ele completamente).. esse componente para comentários aí é o JComments... mas não fui muito feliz em meus testes... hauihaiuhiauh O captcha que estou falando no caso é este aqui, ó: http://www.trainingleader.com.br/mural-de-recados Cliquem em "Clique aqui para deixar um Recado no Mural"... Fui eu que desenvolví este componente aí... o captcha funciona corretamente.. mas os marditos robôs estão burlando o sistema... Outra coisa que não estou conseguindo é criar algo para atualizar (ajax) a imagem captcha... Em tese está tudo OK.. faço via jQuery, dou um load() na div da imagem com o arquivo que gera o captcha.. mas sempre aparece o mesmo.. mas isso é outra história.. então... se alguém tiver uma dica de como melhorar a segurança do captcha, etc.. dá um help aí.. Pois estou procurando isso faz tempo.. mas até agora não encontrei um jeito de melhorar satisfatoriamente a segurança desse captcha aí.. Obrigado desde jáh... Compartilhar este post Link para o post Compartilhar em outros sites
Prog 183 Denunciar post Postado Setembro 1, 2010 Solução mais rápida: usar um script de Captcha reconhecidamente seguro. Solução mais trabalhosa: baixar um script de Captcha reconhecidamente seguro, estudar, aprimorar e implementar as melhorias no seu componente. ;) Compartilhar este post Link para o post Compartilhar em outros sites
felipebmfaria 1 Denunciar post Postado Setembro 1, 2010 Amigo, li sobre isso nesta semana, nao lembro aonde, mas a solucao foi usar um input escondido via css, algo assim: <input type="text" name="vazio" value="" style="display:none" /> como os robots preenchem todos os campos, entao eh nessas que eles se estrepam, pois o humano nao vai preencher este campo escondido, mas o robot sim, entao: if ($_POST['vazio']!="") nao cadastra os dados else { cadastra } Espero ter ajudado. Compartilhar este post Link para o post Compartilhar em outros sites
falcao544 11 Denunciar post Postado Setembro 1, 2010 Cara a questão é que os robôs não lêem o que tá escrito no captcha! Como o Jao Batista Neto explicou, eles pegam a imagem do seu captcha e as utilizam em outros sites, maioria das vezes ---ográficos! Exemplo: O cara é dono de um site ---ô! Aí ele desenvolve esse robô para ficar fazendo muitos cadastros em vários sites! Quando o robô entra no SEU site e se depara com o captcha ele copia a imagem! Aí uma pessoa acessa o site do cara que criouo robô, aí vamos supor que ela tenha que digitar o que tá escrito no captcha para ver o vídeo! Nisso a imagem carregada no captcha é a que o robô trouxe! Assim que o cara termina de digitar e dá um submit, o robô copia o que tá escrito e colam o campo do captcha no SEU site! Assim eles têm acesso! Uma saída é a que o felipebmfaria sugeriu, mas existem outras, várias outras! Por exemplo(essa é maluca): Assim que a pessoa entrar nessa página com o captcha você pode criar um cookie com um tempo de expiração de 3 minutos! Ou seja, quando a pessoa der o submit você verifica se o cookie existe, se existir cadastra, se não existir não cadastra! Porque o robô leva mais de 3 minutos com certeza para obter o que tá escrito no seu captcha através do método que eu citei! Mas o tempo de expiração varia de acordo com o tamanho do formulário! Boa sorte! Compartilhar este post Link para o post Compartilhar em outros sites
hcfpastel 1 Denunciar post Postado Setembro 2, 2010 Solução mais rápida: usar um script de Captcha reconhecidamente seguro. Solução mais trabalhosa: baixar um script de Captcha reconhecidamente seguro, estudar, aprimorar e implementar as melhorias no seu componente. ;) Cara.. é exatamente isso que fiz... essa classe Captcha que estou usando peguei de uma bem famosa que tem por aí.. já vi em diversos sites... E falcao544... eu não tinha pensado em como os robôs trabalham nesse sentido aí, véi.. Vix... O captcha que gero, armazeno o código em uma SESSION... vou ver então esse negócio de trabalhar usando cookie.. pra que ele possa expirar com tempo limitado, etc.. quanto à atualização dinãmica do captcha.. conseguí resolver ontem isso.. Melhorei consideravelmente as validações do cadastro na área administrativa... De qualquer forma.. obrigado... Compartilhar este post Link para o post Compartilhar em outros sites
falcao544 11 Denunciar post Postado Setembro 2, 2010 Por nada! Qualquer duvida posta aí! Compartilhar este post Link para o post Compartilhar em outros sites