CamaraDosDeputados / dados-abertos

Repositório do serviço de Dados Abertos da Câmara. Consulte as "Issues" para atendimento a dúvidas e sugestões.
http://dadosabertos.camara.leg.br
196 stars 13 forks source link

Erro de permissão 403 #66

Open urbanobm opened 7 years ago

urbanobm commented 7 years ago

Trabalhoo no Banco Central do Brasil e o sistema Dados Abertos está bloqueando o nosso acesso à URL de atualização de dados dos deputados. Está dando erro de permissão 403.

"Forbidden You don't have permission to access /SitCamaraWS/Deputados.asmx/ObterDetalhesDeputado on this server. Additionally, a 403 Forbidden error was encountered while trying to use an ErrorDocument to handle the request."

Segue um exemplo de URL: http://www.camara.leg.br/SitCamaraWS/Deputados.asmx/ObterDetalhesDeputado?ideCadastro=194259&numLegislatura=

Não é só esta URL que dá erro de permissão na Câmara. Existem outras URLs da câmara que às vezes dão erro de permissão 403.

rapcal commented 7 years ago

Confirmo que há alguns dias este endpoint está constantemente retornando status 403

rapcal commented 7 years ago

Algo transitório que já se resolveu. Confirma @urbanobm ?

urbanobm commented 7 years ago

Caro Raphael, Obrigado pelo retorno. Infelizmente o problema ainda persiste, veja:

URL: http://www.camara.leg.br/SitCamaraWS/Deputados.asmx/ObterDetalhesDeputado?ideCadastro=73535&numLegislatura

Erro: javax.ws.rs.ForbiddenException: HTTP 403 Forbidden

Favor verificar novamente.

urbanobm commented 7 years ago

A impressão que dá é que se eu chamar as URLs algumas vezes seguidas o problema começa a acontecer. Hoje de manhã aconteceu novamente. Seguem alguns exemplos de URLs de retornaram o erro:

http://www.camara.leg.br/SitCamaraWS/Orgaos.asmx/ObterMembrosOrgao?IDOrgao=537230

http://www.camara.leg.br/SitCamaraWS/Deputados.asmx/ObterDetalhesDeputado?ideCadastro=146788&numLegislatura

rapcal commented 7 years ago

@urbanobm nas urls de parlamentares está faltando um = após o parâmetro numLegislatura

Quanto ao endpoint de Orgãos, o id solicitado não existe - veja aqui os órgãos disponívies.

urbanobm commented 7 years ago

Raphael, Os órgãos que eu estou pesquisando dados são os mesmos que consulto diariamente e são retornados através de uma outra URL dos dados abertos. Segue um exemplo:

http://www.camara.leg.br/SitCamaraWS/Deputados.asmx/ObterDetalhesDeputado?ideCadastro=73666&numLegislatura=

Pela URL acima consultei os dados de um parlamentar que me retornou os órgãos que o mesmo participa. Um dos órgãos retornados na consulta é o 526076. VEja o trecho da resposta da primeira consulta:

526076 PEC34901 . . .

Com base nesta resposta consulta a segunda URL passando o código do órgão "idOrgaoLegislativoCD" igual a "526076".

URL: http://www.camara.leg.br/SitCamaraWS/Orgaos.asmx/ObterMembrosOrgao?IDOrgao=526076

Aí recebo a resposta que o órgão não existe.

rapcal commented 7 years ago

Você está consultando o node Deputado em outra Legislatura - no caso, 52. Ele foi membro deste órgão à época, mas o órgão não existe mais.

A questão da URL do parlamentar foi resolvida?

urbanobm commented 7 years ago

Sobre o símbolo "=" na URL, foi somente um lapso meu na hora de escrever aqui. Tenho vários exemplos da URLs que deram erro de permissão agora de manhã. Por exemplo:

http://www.camara.leg.br/SitCamaraWS/Deputados.asmx/ObterDetalhesDeputado?ideCadastro=73531&numLegislatura=

http://www.camara.leg.br/SitCamaraWS/Deputados.asmx/ObterDetalhesDeputado?ideCadastro=151208&numLegislatura=

http://www.camara.leg.br/SitCamaraWS/Deputados.asmx/ObterDetalhesDeputado?ideCadastro=146788&numLegislatura=

Tenho um processo que executa diariamente carregando os dados da Câmara para um sistema interno aqui do Banco Central do Brasil. Aparentemente, começa a dar erros de permissão quando chamo seguidamente algumas URLs da Câmara.

urbanobm commented 7 years ago

As URLs que tem o padrão conforme a que coloquei aqui abaixo também costumam dar erro 403 se chamadas com certa frequência:

http://www.camara.leg.br/SitCamaraWS/SessoesReunioes.asmx/obterInteiroTeorDiscursosPlenario?codSessao=018.3.55.O&numOrador=2&numQuarto=5&numInsercao=0

rapcal commented 7 years ago

Infelizmente não consigo reproduzir @urbanobm

urbanobm commented 7 years ago

Raphael, se a questão de restringir acessos constantes a um padrão de URL não for dentro da aplicação dos Dados Abertos sugiro uma verificação com a equipe de rede/segurança para saber se existe algum firewal interno de vocês fazendo este bloqueio.

diraol commented 7 years ago

Aqui todos abriram. Será que não é algo na rede de vocês? Tente pegar o resultado de um curl -vv

(Aliás galera da cdep, o varnish de vocês está retornando X-Cache-Action: MISS. Eu fiz várias requisições para o mesmo endereço agora, para testar, e ele deu esse header ai... deve ter algum problema no setup ... Inclusive porque tem Cache-Control: private, max-age=0 tbm...

rapcal commented 7 years ago

@urbanobm não sou da CD - só tentando ajudar 👍 @diraol valeu pela confirmação!

urbanobm commented 7 years ago

Raphael, Aqui não dá erro 403 se eu chamar a URL pelo browser e der F5 várias vezes. Mas o processo batch que tenho aqui começa a receber este tipo de erro no decorrer do tempo que executa. Coloquei um "delay" entre as chamadas aqui pra testar. O problema parecia ter se resolvido mas na verdade houve apenas uma melhora. Por isso estou insistindo nessa questão.

Sendo mais objetivo, não existe do lado de vocês algum mecanismo de proteção contra ataques que está dando este erro 403 para nós?

urbanobm commented 7 years ago

@rapcal e @diraol, vocês sabem quem poderia verificar este problema?

EquipeDadosAbertosCD commented 7 years ago

Olá, pessoal!

Desculpem a demora na resposta. Por alguma razão só recebemos hoje os e-mails de aviso sobre a movimentação na thread.

Houve uma migração do sistema de banco de dados da Câmara no último fim de semana e isso vem causando uma série de problemas diversos em todos os serviços ligados a ele, como o Dados Abertos. às vezes problemas por conta de mudanças nas colunas de uma tabela, às vezes por permissão de acesso à base por alguns serviços, e às vezes por pura e simples instabilidade causada pelas necessidades de reiniciar serviços. Mais uma vez, peço desculpas.

Junto a isso, houve também uma recente reconfiguração dos servidores porque pelo menos alguns dos endpoints do Dados Abertos estavam trabalhando igualmente com GET e POST sem necessidade. Se a requisição causadora do problema for feita com POST, por favor faça um teste com GET.

Assim como diraol, consegui testar todos esses endpoints sem qualquer problema (usando a rede da própria Câmara, é verdade). Se você perceber alguma mudança, por favor avise!

Abraços!

Fabricio Rocha Equipe de Dados Abertos Centro de Informática da Câmara (CENIN)

urbanobm commented 7 years ago

Caro @CeninCD , alguns endpoints só dão problema de erro 403 após algumas chamadas em sequencia a partir do Banco Central. Por isso insisto que você não conseguirá reproduzir o erro da sua rede interna e mesmo de uma rede externa com apenas uma chamada. Para solucionar o problema o pessoal aí dos Dados Abertos responsável pelas redes e pela segurança precisaria ser inserido na nossa conversa. Você consegue envolvê-los? Obrigado,

DaniloOliveira28 commented 7 years ago

@urbanobm

Vc está fazendo muitas chamadas, de forma repetitiva em muito pouco tempo. Tenta criar um controle de chamadas.

Saiba mais sobre esse problema: https://api.stackexchange.com/docs/throttle

urbanobm commented 7 years ago

@DaniloOliveira28 , coloquei um intervalo de 1 segundo entre uma requisição e outra e mesmo assim, ás vezes, o problema acontece.

DaniloOliveira28 commented 7 years ago

@urbanobm tenta usar um algoritmo de Throttling. http://krishnaprasadas.blogspot.com.br/2012/05/throttling-algorithm.html

romeu-braga commented 7 years ago

O mesmo erro aconteceu aqui, mas atrasando meio segundo consegui fazer o que queria... Abaixo uma imagem retornada no navegador

403

diraol commented 5 years ago

@EquipeDadosAbertosCD @CeninCD, existe algum tipo de "rate limit" (por segundo, por minuto, por hora, por dia) no Webservice (não API REST) de vocês?

Seria legal ter essa informação publicizada para que possamos adequar nossos serviços às especificações do sistema de vocês, acho que todo mundo sai ganhando. =)

Estamos, no RadarParlamentar, fazendo um revert do uso da API Rest para o Webservice (porque alguns dos recursos que precisamos e haviam sido migrados foram "deprecados" na API REST), e ai estamos recebendo esses erros (403) novamente.

EquipeDadosAbertosCD commented 5 years ago

Salve, Diego!

A limitação de acessos foi feita em janeiro, anunciada na issue #208 . O pessoal da área de segurança dos servidores me informou que os webservices estão atualmente configurados com os seguintes limites por IP:

Por favor verifique se a forma de consulta de vocês bate em algum desses limites. Há outras configurações de servidor usadas para proteção contra denial of service que podem causar esse erro 403, e talvez mesmo adequando a consulta para esses limites o problema ainda pode ocorrer. Se isso acontecer, nos envie por e-mail o IP usado por vocês para verificarmos pelo log as causas.

Abraço!

Fabricio Rocha Equipe Dados Abertos - Câmara

diraol commented 5 years ago

Salve Fabrício!

Muito obrigado pelo rápido feedback!

Já encaminhei a mensagem ao pessoal que está trabalhando nessa integração, vamos tentar gerenciar as conexões/requisições e ver se isso resolve o problema. Se não resolver, avisamos por aqui. =) [se resolver avisamos também!]

Abraços!