React Native

Melhores Práticas de Segurança

Armazenamento seguro, SSL pinning, ofuscação, proteção contra reverse engineering, dados sensíveis

20 perguntas de entrevista·
Senior
1

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.

2

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.

3

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.

4

Como gerenciar chaves de API e segredos em uma aplicação React Native em produção?

5

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

Junior
25 perguntas

Fundamentos do React

Junior
20 perguntas

Fundamentos do React Native

Junior
22 perguntas

React Hooks

Junior
20 perguntas

TypeScript para React e React Native

Junior
22 perguntas

Componentes e API do React Native

Junior
20 perguntas

Estilização e Layout no React Native

Junior
18 perguntas

Navegação no React Native

Mid-Level
22 perguntas

Gerenciamento de Estado no React Native

Mid-Level
24 perguntas

Networking e API no React Native

Mid-Level
20 perguntas

Persistência de dados

Mid-Level
20 perguntas

Formulários e validação

Mid-Level
18 perguntas

Animações do React Native

Mid-Level
22 perguntas

Native Modules & Bridge

Mid-Level
20 perguntas

Código específico de plataforma

Mid-Level
18 perguntas

Permissões e APIs de dispositivo

Mid-Level
20 perguntas

Push Notifications

Mid-Level
18 perguntas

Testing no React Native

Mid-Level
20 perguntas

Debugging de React Native

Mid-Level
18 perguntas

Build & Deployment

Mid-Level
20 perguntas

Expo vs React Native Bare

Mid-Level
18 perguntas

Otimização de desempenho

Senior
24 perguntas

Gerenciamento de memória

Senior
20 perguntas

Architecture Patterns

Senior
22 perguntas

New Architecture do React Native

Senior
24 perguntas

Offline-First Architecture

Senior
20 perguntas

CI/CD React Native

Senior
20 perguntas

Monorepo e compartilhamento de código

Senior
18 perguntas

Tópicos avançados

Senior
22 perguntas

Ciclo de vida do app e execução em segundo plano

Mid-Level
20 perguntas

Autenticação e gerenciamento de sessões

Mid-Level
22 perguntas

Monitoring & Crash Reporting

Senior
20 perguntas

Domine React Native para sua proxima entrevista

Acesse todas as perguntas, flashcards, testes tecnicos, exercicios de code review e simuladores de entrevista.

Comece gratis