Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Maykonn

REST Api

Recommended Posts

Estou escrevendo uma API em PHP e nela optei por usar Respect/REST.

 

Essa não é uma API pública, ou seja, somente aplicações clientes autorizadas poderão consumi-lá. E é nesse ponto que gostaria de alguma ideia sobre como garantir a segurança das informações que a API manipula.

As aplicações clientes, poderão estar escritas em qualquer linguagem, mas como disse, essas devem estar autorizadas a utilizar a API.

 

No momento estou escrevendo um cliente de teste para essa API usando jQuery.rest.

 

Minhas dúvidas são:

 

1) Como garantir que apenas clientes autorizados possam ter acesso a API?

2) Como garantir que toda requisição feita à API tenha vindo do cliente autorizado?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo, pensei aqui agora que PODERÁ ser uma solução.

 

1) Como garantir que apenas clientes autorizados possam ter acesso a API?

R: Pensou em ter um banco de dados dos clientes, com seus respectivos hash para uso?

Por exemplo, você cria uma hash única para cada cliente, que atravéz dessa você saberá se o cliente tem permissão ou não de usar sua API.

 

O que eu pensei agora foi: Tente fazer um esquema de como o Git faz: manda gerar uma chave ssh associada a sua API, depois de criar, o cliente envia esta hash para algum sistema seu que faz todo o controle de clientes. Essa chave que o cara vai criar ficará bloqueada até que ele tenha permissão de usá-la. Após ele por exemplo, efetuar pagamento pra usar sua API, você gera outra hash para este cliente, então o cara pega a chave e substitui no arquivo, fazendo com que a API para este cliente fique ativa.

 

2) Como garantir que toda requisição feita à API tenha vindo do cliente autorizado?

R: Atravéz da minha primeira resposta logo acima.

 

Esta minha idéia pode ser implementada em C ou ShellScript. Se caso você já usou Git, entenderá melhor do que estou falando.

 

Sei lá cara, acho que a minha idéia parece ser complexa e talvez errada / fora de contexto para resolver este seu problema, porém foi o que pensei e que talvez ficaria seguro. Aguardo outros para sugerirem algo melhor!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.