Como você pode impedir que aplicativos clientes arbitrários usem sua API da web anônima?

Desculpas se isso já tiver sido solicitado e respondido; Eu olhei em volta, mas não encontrei exatamente o que estou perguntand

-

Suponha meu aplicativo da web emhttp: //example.com usa uma API da web privada e não documentada emhttp: //api.example.com para buscar dados, por exemplo via XHR ou JSONP.

Suponha também que este aplicativo Web seja anônimo - ele faznã requer login do usuári

Desde que haja comunicação entre cliente e servidor, qualquer pessoa pode abrir o Fiddler etc. para ver a solicitação e resposta exatas, sem mencionar a inspeção do código JS do lado do client

Em um caso como esse, como você pode impedir que alguém use sua API em um não-web aplicativo cliente? Por exemplo. um aplicativo para iPhone ou no servidor.

Para meu entendimento, o ponto 2 remove a opção de algo como OAuth e o ponto 3 remove a opção, por exemplo Chaves de API ou até SSL.

ensei em coisas como tokens baseados em tempo ou sais secretos que são injetados na página no primeiro carregamento, mas um aplicativo para iPhone pode facilmente carregar secretamente sua página da Web antes de fazer solicitações de AP

ntão, existe alguma maneira além da simples ofuscação - segurança através da obscuridad

-

Caso tudo isso seja abstrato demais, aqui está um exemplo simples:

@ Google.com busca seus dados de preenchimento automático por meio de uma API privada e não documentada - mas aberta na Web. O que me impede de usá-lo no meu aplicativo para iPhone?

questionAnswers(4)

yourAnswerToTheQuestion