Найкращі практики безпеки
Безпечне зберігання, SSL pinning, обфускація, захист від reverse engineering, конфіденційні дані
1Який рекомендований метод зберігання конфіденційних даних, таких як токени автентифікації, у застосунку React Native?
Який рекомендований метод зберігання конфіденційних даних, таких як токени автентифікації, у застосунку React Native?
Відповідь
Конфіденційні дані, такі як токени автентифікації, повинні зберігатися в Keychain (iOS) або Keystore (Android) за допомогою бібліотек на кшталт react-native-keychain чи expo-secure-store. Ці системи забезпечують апаратне шифрування та захист від вилучення даних навіть на пристроях з root-доступом. AsyncStorage зберігає дані у вигляді відкритого тексту й ніколи не повинен використовуватися для конфіденційної інформації.
2Що таке SSL pinning і чому його слід впроваджувати в застосунку React Native?
Що таке SSL pinning і чому його слід впроваджувати в застосунку React Native?
Відповідь
SSL pinning перевіряє сертифікат сервера на відповідність відомому сертифікату або відкритому ключу, вбудованому в застосунок, замість того щоб довіряти лише системному ланцюжку сертифікатів. Це захищає від атак man-in-the-middle, навіть якщо зловмисник встановив шкідливий сертифікат на пристрої. Бібліотеки на кшталт react-native-ssl-pinning або TrustKit дозволяють реалізувати цей захист.
3Як захистити код JavaScript у застосунку React Native від reverse engineering?
Як захистити код JavaScript у застосунку React Native від reverse engineering?
Відповідь
Обфускація коду JavaScript за допомогою інструментів на кшталт Metro bundler, react-native-obfuscating-transformer чи Hermes bytecode ускладнює розуміння коду. Hermes компілює JavaScript у bytecode, додаючи рівень захисту. Однак обфускація не є абсолютним захистом - вона уповільнює зловмисників, але не може повністю запобігти reverse engineering. Критичні секрети ніколи не повинні зберігатися в клієнтському коді.
Як керувати API-ключами та секретами у виробничому застосунку React Native?
Що таке виявлення root/jailbreak і як його реалізувати в React Native?
+17 питань зі співбесід
Інші теми співбесід React Native
Основи JavaScript
Основи React
Основи React Native
React Hooks
TypeScript для React та React Native
Компоненти та API React Native
Стилізація та макет у React Native
Навігація в React Native
Управління станом у React Native
Networking та API в React Native
Збереження даних
Форми та валідація
Анімації React Native
Native Modules & Bridge
Код, специфічний для платформи
Дозволи та API пристрою
Push Notifications
Тестування React Native
Налагодження React Native
Build & Deployment
Expo vs React Native Bare
Оптимізація продуктивності
Управління пам'яттю
Architecture Patterns
React Native New Architecture
Offline-First Architecture
CI/CD React Native
Monorepo та спільне використання коду
Складні теми
Життєвий цикл застосунку та фонове виконання
Автентифікація та керування сесіями
Monitoring & Crash Reporting
Опануй React Native для наступної співбесіди
Отримай доступ до всіх питань, flashcards, технічних тестів, вправ code review та симуляторів співбесід.
Почни безкоштовно