Permitir acesso apenas a pedido específico

1

Eu tenho um aplicativo iOS que se comunica com um servidor Apache 2.2. Gostaria de restringir o acesso a vários diretórios para que somente o aplicativo possa acessá-los (sem acesso ao navegador, sem rastreadores, etc.). Quais são minhas opções?

    
por Valentin Radu 29.04.2012 / 22:06

1 resposta

6

Execute o Apache em uma porta não padrão, como 8574. Essa primeira etapa eliminará 99% do "ruído" esperado de robôs e scripts.

A parte específica da configuração que você deseja no Apache é mod_authz_host . Ele permite filtrar solicitações de acesso com base em vários fatores que o Apache define como "variáveis de ambiente", incluindo o agente do usuário. Você pode permitir do seu agente de usuário personalizado, em seguida, Negar de todos.

CAVEAT: Com tudo isso dito, a filtragem baseada no agente do usuário não é correta para implementar o que você deseja. Controles do lado do servidor são apenas o começo de proteger seu aplicativo contra acesso não autorizado. A autenticação em um serviço da Web (como o que você está desenvolvendo) deve ser implementada usando algum tipo de chave de API. Muitas APIs REST fazem exatamente isso. Se você não tiver certeza de como implementar a criptografia baseada em chave, consulte um especialista (ou enfrente as consequências).

ACOMPANHAMENTO: A implementação de criptografia de chave pública é uma das muitas maneiras de fazer o trabalho corretamente. Antes de você entrar, deixe-me dizer que você está em um mundo de dor. Confira o indispensável " Tudo o que você precisa saber sobre criptografia em 1 hora ." Note que ele diz a frase "consultar um criptógrafo" seis vezes na apresentação. Na sua forma mais simples, seu servidor deve ser capaz de responder às seguintes perguntas afirmativas para qualquer solicitação:

  1. Posso garantir que essa solicitação veio do aplicativo iOS?
  2. Posso garantir que esta mensagem não foi adulterada?
  3. Posso garantir que esse usuário é quem ele diz ser?
  4. Posso garantir que este usuário está autorizado a fazer o que está pedindo?

Como você pode ver na apresentação, mesmo as APIs conhecidas, como a Amazon, nem sempre acertam isso. Acredito que você precisa de um especialista em sua equipe, pelo menos para que essa parte da sua inscrição seja correta.

    
por 29.04.2012 / 22:11