cpf-gratis icon indicating copy to clipboard operation
cpf-gratis copied to clipboard

Captcha CPF/CNPJ deprecativo.

Open lucianozanita opened this issue 7 years ago • 74 comments

Olá, hoje 23/10/2017 a Receita federal passou a não utilizar mais o captcha padrão e começou a usar o recaptcha, o que inviabilizou o captcha usado anteriormente, saberia alguma forma de resolver este problema?

lucianozanita avatar Oct 23 '17 12:10 lucianozanita

O site deathbycaptcha promete quebrar mas não sei ainda como, vou dar uma pesquisada.

kivervinicius avatar Oct 23 '17 13:10 kivervinicius

Existem serviços com anti-captcha.com e o 2captcha.com mas são pagos. Eles na verdade já fornecem a solução do captcha para vc automatizar o processo todo sem necessidade de interação do usuário, o que é bem interessante se vc estiver disposto a gastar algum dinheiro com o serviço.

O cpf-gratis/cnpj-gratis nunca foi automatizado desta forma, ele apenas repassava para o usuário final responder o captcha e receber os dados. O ideal para continuar com o projeto sem custo seria apenas repassar a validação do recatpcha para o usuário final validar. Tem só q descobrir como fazer isso pegando a sitekey/public key e devolvendo a g-recaptcha-response.

FelipeCastello avatar Oct 23 '17 13:10 FelipeCastello

Pelo site http://cpf.receita.fazenda.gov.br/situacao/default.asp ainda a consulta é realizada pelo captcha antigo.

kivervinicius avatar Oct 23 '17 13:10 kivervinicius

No caso do CNPJ se vc clicar em "Captcha Sonoro" também volta para o antigo mas não temos como saber quanto tempo isso ainda deve ficar disponível.

http://www.receita.fazenda.gov.br/PessoaJuridica/CNPJ/cnpjreva/Cnpjreva_Solicitacao.asp

FelipeCastello avatar Oct 23 '17 14:10 FelipeCastello

Fazendo a consulta pelo link https://www.receita.fazenda.gov.br/Aplicacoes/SSL/ATCTA/CPF/ConsultaSituacao/ConsultaPublicaSonoro.asp ao clicar em consultar estão validando se você "ouviu o audio"(clicou no botão para escutar) após isso ele permite digitar o captcha e consultar. Mas como o @FelipeCastello falou não é garantido.

kivervinicius avatar Oct 23 '17 14:10 kivervinicius

Olá pessoal

Também estou com esse probleminhas.

Sobre o CPF eles mudaram para o sistema de Captcha do Google é mais complicado. Já o CNPJ notei o seguinte

url_antiga = "http://www.receita.fazenda.gov.br/pessoajuridica/cnpj/cnpjreva/Cnpjreva_Solicitacao2.asp" essa solicita agora para pessoa ouvir áudio.

O que notei foi que agora tem essa nova url http://www.receita.fazenda.gov.br/pessoajuridica/cnpj/cnpjreva/Cnpjreva_solicitacao3.asp

acredito que atualizando a url para essa nova já resolve o cnpj.

faelp22 avatar Oct 23 '17 16:10 faelp22

Eu tinha feito essa troca da URL aqui no sistema para testar o CNPJ (Cnpjreva_solicitacao3.asp). Até agora ta funcionando normalmente sem nenhuma alteração no código e aprece ser a melhor solução temporária.

Se alguém quiser se aventurar um pouco, já vi a funcionalidade que queremos em outro projeto (repassar o recaptcha para o usuário validar). O projeto é em Python e usa umas libs externas mas já deve dar um norte para seguir.

https://github.com/RocketMap/RocketMap http://rocketmap.readthedocs.io/en/develop/first-run/captchas.html

Esse projeto da a opção de fazer os captchas manualmente pelo navegador ou de forma automática pelo 2captcha. Deve ser uma boa referência para ver como precisa ser tratado as requisições/Tokens do ReCaptcha

FelipeCastello avatar Oct 23 '17 16:10 FelipeCastello

Estou com o mesmo problema, alguém está tentando implementar o recaptcha da receita? Se eu puder ajudar em algo.

andercrist avatar Oct 24 '17 14:10 andercrist

Outro caminho é usar a url mobile, que vem dentro do app da receita tanto pra cpf como cnpj

100n0m3 avatar Oct 24 '17 14:10 100n0m3

qual url @100n0m3

kivervinicius avatar Oct 24 '17 16:10 kivervinicius

Cara chegando em casa já posto aqui, a url e os parâmetros.

100n0m3 avatar Oct 24 '17 17:10 100n0m3

Não seria interessante acertar com o recaptcha? O @FelipeCastello deixou algumas dicas sobre isso, ainda não encontrei uma forma de trazer o recaptcha(da receita) mostrar na página do usuário final.

andercrist avatar Oct 24 '17 17:10 andercrist

Achei um princípio de explicação aqui de como pegar o sitekey e como funciona o ajax do recaptcha mas eles não entram no detalhe de como repassar ao user final (afinal é o serviço deles)

https://anticaptcha.atlassian.net/wiki/spaces/API/pages/9666575/Reproducing+Recaptcha+validation+without+digging+the+HTML+source

FelipeCastello avatar Oct 24 '17 17:10 FelipeCastello

@fazti o recaptcha atualmente é o captcha mais dificil de "burlar" devido que ao constante uso de um ip ele dificultar os desafios até o ponto de bloquea-lo.

kivervinicius avatar Oct 24 '17 17:10 kivervinicius

@kivervinicius Que coisa chata hein! O pessoal da receita podia liberar uma API para consulta usando o próprio captcha, da forma como estava, não era um problema, afinal, qual a diferença de uma consulta no site da receita e um outro site intermediando? No final tenho que ir na receita e consultar se o CPF é válido ou não.

andercrist avatar Oct 24 '17 17:10 andercrist

@fazti o problema é o abuso, por exemplo se nós estamos colocando em nosso sistema não é uma pessoa que está consultando e sim milhares, isso cria uma sobrecarga tremenda no serviço deles. Sou a favor de liberarem consulta via api por pagamento seria muito bom, pois precisamos deste tipo de serviços.

kivervinicius avatar Oct 24 '17 17:10 kivervinicius

@FelipeCastello Interessante, estou pesquisando aqui também alguma forma, mas pelo visto complicou :(

andercrist avatar Oct 24 '17 17:10 andercrist

@fazti creio que fazem isso para redução na carga dos servidores afinal imagina o Brasil todo fazendo consultas o dia todo, também acho que deveria haver uma api algo assim de preferencia free para desenvolvedores ou empresas sei la, sei q ta complicado.

100n0m3 avatar Oct 24 '17 17:10 100n0m3

O ReCaptcha é um dos melhores que existem atualmente nesse serviço mas no nosso caso não queremos burlar o sistema deles com um robô "resolvendo" a validação. Queremos apenas poder repassar para o usuário dos nossos sites validarem.

Eu sei q isso é possível pq é exatamente o que esses serviços anti-captcha fazem. Eles pegam a sitekey e enviam para uma pessoa de verdade que é paga para resolver e repassam a resposta para o usuário.

@fazti Concordo! Não faz NENHUM sentido a Receita não fornecer algum tipo de API para consulta cadastral básica (pelo menos de empresas, CPF é um debate um pouco mais complexo em relação a privacidade), assim como não faz sentido o correios não fornecer uma api decente de consulta de CEP

@kivervinicius na questão de abuso entra a questão de limitações. Não precisa ser um API pública, pode fazer um cadastro para liberar uma chave de acesso. Até X consultas diárias por chave liberada, se quiser mais para ter um volume corporativo ai se cobre separado.

FelipeCastello avatar Oct 24 '17 17:10 FelipeCastello

as alteraçoes do re-captcha vão muito alem do site da receita, foram praticamente todos os sites do governo, denatran, antt, receita, e por ai vai...

100n0m3 avatar Oct 24 '17 17:10 100n0m3

@FelipeCastello concordo plenamente na cobrança de serviços excedentes, libera uma api pública e cobra os excedentes até para manter o serviço em pé.

andercrist avatar Oct 24 '17 17:10 andercrist

@100n0m3 geral ta sendo bloqueado, e em breve as brechas q encontramos serão corrigidas.

kivervinicius avatar Oct 24 '17 17:10 kivervinicius

@kivervinicius então, acabei de olhar em um dos meus repositórios e adivinha, visita da serpro.

Site | Views | Unique visitors

mail.serpro.gov.br | 2 | 1

com ctz vão fechar tudo :/

100n0m3 avatar Oct 24 '17 18:10 100n0m3

:(

kivervinicius avatar Oct 24 '17 18:10 kivervinicius

Bloquear vc diz desativarem as URLs? Pq acho difícil eles conseguirem bloquear algo se conseguirmos passar o campo do recaptcha para o usuário final. Isso seria uma questão com a equipe do ReCaptcha.

FelipeCastello avatar Oct 24 '17 18:10 FelipeCastello

@FelipeCastello o recaptcha bloqueia muitas requisições do mesmo ip e não deixa resolver o captcha.

kivervinicius avatar Oct 24 '17 18:10 kivervinicius

Eles lançaram uma API https://servicos.serpro.gov.br/api-gov/ acredito que estão fechando as portas mesmo pois esse serviço é pago, também acho que o que poderíamos fazer era repassar o reCAPTCHA para o cliente, fiz alguns testes mas me deparei com o problema de capturar o token de verificação do Google.

A nova estrutura de requisição:

idCheckedReCaptcha: txtCPF: txtDataNascimento: g-recaptcha-response:

E para mim o problema é pegar o "g-recaptcha-response" até tentei simular colocando diretamente o reCAPTCHA no meu sistema mas ele valida meu domínio.

O problema seria simular o domínio da receita para o reCAPTCHA achar que ele está acessando pois achava de acesso é publica e com isso pegaria o token do reCAPTCHA e mandaria na nova estrutura de requisição da receita.

faelp22 avatar Oct 24 '17 18:10 faelp22

@faelp22 o bom que é baratinho (sqn)

kivervinicius avatar Oct 24 '17 19:10 kivervinicius

Sempre existiu essa API deles o problema era que somente um grupo pequeno de pessoas/empresas podiam usar. Se não me falha a memória existia alguns pré-requisitos a serem preenchidos para vc poder contratar como comprovar que essas informações eram necessárias a sua atividade-fim (como bancos e financeiras que precisam fazer validação cadastral). Aparentemente eles deram uma nova cara ao serviço e não vi nenhuma menção a qualquer tipo de limitação de contratação (o que é bem interessante) mas a tabela de preços ta bem surreal e inviável para projetos pequenos.

FelipeCastello avatar Oct 24 '17 19:10 FelipeCastello

@FelipeCastello a requisição para partir através do cliente somente se fosse através de iframe, e esta lib não poderia mais ser utilizada, uma outra forma é através de vps ou onion, mas essas redes são rastreadas pelo google e são bloqueadas por padrão.

kivervinicius avatar Oct 24 '17 19:10 kivervinicius