Melhores Práticas de Segurança
Armazenamento seguro, SSL pinning, ofuscação, proteção contra reverse engineering, dados sensíveis
1Qual é o método recomendado para armazenar dados sensíveis como tokens de autenticação em uma aplicação React Native?
Qual é o método recomendado para armazenar dados sensíveis como tokens de autenticação em uma aplicação React Native?
Resposta
Dados sensíveis como tokens de autenticação devem ser armazenados no Keychain (iOS) ou Keystore (Android) usando bibliotecas como react-native-keychain ou expo-secure-store. Esses sistemas oferecem criptografia baseada em hardware e proteção contra extração de dados mesmo em dispositivos com root. O AsyncStorage armazena os dados em texto simples e nunca deve ser usado para informações sensíveis.
2O que é SSL pinning e por que ele deve ser implementado em uma aplicação React Native?
O que é SSL pinning e por que ele deve ser implementado em uma aplicação React Native?
Resposta
O SSL pinning consiste em validar o certificado do servidor contra um certificado ou chave pública conhecido e embutido na aplicação, em vez de confiar apenas na cadeia de certificação do sistema. Isso protege contra ataques man-in-the-middle mesmo que um invasor tenha instalado um certificado malicioso no dispositivo. Bibliotecas como react-native-ssl-pinning ou TrustKit permitem implementar essa proteção.
3Como proteger o código JavaScript de uma aplicação React Native contra reverse engineering?
Como proteger o código JavaScript de uma aplicação React Native contra reverse engineering?
Resposta
A ofuscação do código JavaScript com ferramentas como Metro bundler, react-native-obfuscating-transformer ou Hermes bytecode torna o código mais difícil de entender. O Hermes compila JavaScript em bytecode, adicionando uma camada de proteção. No entanto, a ofuscação não é uma proteção absoluta - ela retarda os atacantes mas não pode impedir totalmente o reverse engineering. Segredos críticos nunca devem ser armazenados no código do cliente.
Como gerenciar chaves de API e segredos em uma aplicação React Native em produção?
O que é a detecção de root/jailbreak e como implementá-la no React Native?
+17 perguntas de entrevista
Outros temas de entrevista React Native
Fundamentos de JavaScript
Fundamentos do React
Fundamentos do React Native
React Hooks
TypeScript para React e React Native
Componentes e API do React Native
Estilização e Layout no React Native
Navegação no React Native
Gerenciamento de Estado no React Native
Networking e API no React Native
Persistência de dados
Formulários e validação
Animações do React Native
Native Modules & Bridge
Código específico de plataforma
Permissões e APIs de dispositivo
Push Notifications
Testing no React Native
Debugging de React Native
Build & Deployment
Expo vs React Native Bare
Otimização de desempenho
Gerenciamento de memória
Architecture Patterns
New Architecture do React Native
Offline-First Architecture
CI/CD React Native
Monorepo e compartilhamento de código
Tópicos avançados
Ciclo de vida do app e execução em segundo plano
Autenticação e gerenciamento de sessões
Monitoring & Crash Reporting
Domine React Native para sua proxima entrevista
Acesse todas as perguntas, flashcards, testes tecnicos, exercicios de code review e simuladores de entrevista.
Comece gratis