Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Erro de permissão 403 #66

Open
urbanobm opened this issue Mar 6, 2017 · 24 comments
Open

Erro de permissão 403 #66

urbanobm opened this issue Mar 6, 2017 · 24 comments

Comments

@urbanobm
Copy link

urbanobm commented Mar 6, 2017

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
Copy link

rapcal commented Mar 8, 2017

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

@rapcal
Copy link

rapcal commented Mar 9, 2017

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

@urbanobm
Copy link
Author

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
Copy link
Author

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
Copy link

rapcal commented Mar 10, 2017

@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
Copy link
Author

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
Copy link

rapcal commented Mar 10, 2017

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
Copy link
Author

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
Copy link
Author

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
Copy link

rapcal commented Mar 10, 2017

Infelizmente não consigo reproduzir @urbanobm

@urbanobm
Copy link
Author

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
Copy link

diraol commented Mar 10, 2017

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
Copy link

rapcal commented Mar 10, 2017

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

@urbanobm
Copy link
Author

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
Copy link
Author

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

@EquipeDadosAbertosCD
Copy link
Member

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
Copy link
Author

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
Copy link

@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
Copy link
Author

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

@DaniloOliveira28
Copy link

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

@romeu-braga
Copy link

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

403

@diraol
Copy link

diraol commented Apr 19, 2019

@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
Copy link
Member

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:

  • Máximo de 80 conexões simultâneas
  • Máximo de 20 requisições por segundo

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
Copy link

diraol commented Apr 22, 2019

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!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants