MASTG-KNOW-0074: Atualização Forçada

A atualização forçada pode ser útil quando se trata de pinning de chave pública (consulte o teste de comunicação de rede para mais detalhes) quando um pin precisa ser atualizado devido à rotação de certificado/chave pública. Além disso, vulnerabilidades são facilmente corrigidas por meio de atualizações forçadas.

O desafio com o iOS, no entanto, é que a Apple ainda não fornece nenhuma API para automatizar esse processo. Em vez disso, os desenvolvedores terão que criar seu próprio mecanismo, como descrito em vários blogs que se resumem a consultar propriedades do aplicativo usando http://itunes.apple.com/lookup\?id\<BundleId> ou bibliotecas de terceiros, como Siren e react-native-appstore-version-checker. A maioria dessas implementações exigirá uma determinada versão fornecida por uma API ou simplesmente a "mais recente na App Store", o que significa que os usuários podem ficar frustrados por terem que atualizar o aplicativo, mesmo que não haja uma real necessidade comercial/de segurança para uma atualização.

Observe que versões mais recentes de um aplicativo não corrigirão problemas de segurança que existem nos backends com os quais o app se comunica. Permitir que um aplicativo não se comunique com ele pode não ser suficiente. Ter um gerenciamento adequado do ciclo de vida da API é fundamental aqui. Da mesma forma, quando um usuário não é forçado a atualizar, não se esqueça de testar versões mais antigas do seu aplicativo em relação à sua API e/ou usar o versionamento adequado de API.