1
resposta

Segurança em WebServices com acesso para App especifico independente do usuário

Boa tarde... no curso MVC falou um pouco sobre segurança em WebServices e sugeriu geração de Token por exemplo. Citou cursos especificos como Synfony e Lumen. Dei uma olhada neles, mas seria a mesma abordagem de gerar um token.

Levando em consideração que um token seria mais seguro com tempo de expiração, sendo necessário ser renovado,... e tendo um aplicativo que listaria imóveis, empresas,... de um webservice, para qualquer usuário do mesmo, como fazer uma validação permitindo um aplicativo especifico, disponivel para android, IOS,... independente do usuário?

Com CORS Cross-Origin, daria para filtrar IP, dominio,... mas também apps especificos? Tem algum identificador para aplicativos que poderia ser usado? e como faria?

Salvando o token no aplicativo, não o tornaria inseguro, o usuário podendo vasculhar o codigo fonte ou algo do tipo? até pq teria um tempo de expiração.

Desde já agradeço

1 resposta

Olá, Alex! Como vai?

Peço desculpa pela demora em respondê-lo.

Uma abordagem comum para resolver esse problema é utilizar autenticação e autorização por meio de tokens. O token seria gerado pelo servidor e enviado para o aplicativo, que o utilizaria em todas as requisições subsequentes. Dessa forma, o servidor poderia certificar se o token é válido e se pertence ao aplicativo específico.

Para garantir a segurança do token, é importante que ele seja armazenado de forma segura no aplicativo. Uma opção é utilizar um mecanismo de armazenamento seguro, como o Keychain no iOS ou o Keystore no Android. Isso impediria que o usuário pudesse acessar diretamente o token no código-fonte do aplicativo.

Além disso, como você mencionou, é possível definir um tempo de expiração para o token. Assim, mesmo que o usuário consiga acessá-lo, ele terá uma validade limitada, o que aumenta a segurança do sistema.

Quanto à filtragem de acesso por CORS (Cross-Origin Resource Sharing), ela é útil para controlar o acesso a recursos de diferentes origens, mas não é a melhor opção para filtrar aplicativos específicos. Uma alternativa seria utilizar um identificador único para cada aplicativo, como um ID de cliente, e validar esse identificador no servidor antes de conceder acesso aos recursos.

Em resumo, para garantir a segurança do acesso a um WebService por um aplicativo específico, você pode utilizar autenticação e autorização por meio de tokens, armazenando-os de forma segura no aplicativo e definindo um tempo de expiração. Além disso, é possível utilizar um identificador único para cada aplicativo e validar esse identificador no servidor.

Espero ter ajudado! Se tiver mais alguma dúvida, estou à disposição.

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.