React Native

セキュリティのベストプラクティス

セキュアストレージ、SSL pinning、難読化、リバースエンジニアリング対策、機密データ

20 面接問題·
Senior
1

React Nativeアプリケーションで認証トークンのような機密データを保存する推奨される方法は何ですか?

回答

認証トークンのような機密データは、react-native-keychainやexpo-secure-storeなどのライブラリを使用してKeychain(iOS)またはKeystore(Android)に保存する必要があります。これらのシステムはハードウェアベースの暗号化を提供し、rootされたデバイスでもデータ抽出から保護します。AsyncStorageはデータを平文で保存するため、機密情報には決して使用すべきではありません。

2

SSL pinningとは何で、なぜReact Nativeアプリケーションに実装すべきなのですか?

回答

SSL pinningは、システムの証明書チェーンのみを信頼するのではなく、アプリケーションに埋め込まれた既知の証明書または公開鍵に対してサーバー証明書を検証します。これにより、攻撃者がデバイスに悪意のある証明書をインストールしていても、man-in-the-middle攻撃から保護されます。react-native-ssl-pinningやTrustKitなどのライブラリでこの保護を実装できます。

3

React NativeアプリケーションのJavaScriptコードをリバースエンジニアリングから保護するにはどうすればよいですか?

回答

Metro bundler、react-native-obfuscating-transformer、Hermes bytecodeなどのツールによるJavaScriptコードの難読化は、コードを理解しにくくします。HermesはJavaScriptをbytecodeにコンパイルし、保護層を追加します。ただし、難読化は絶対的な保護ではなく、攻撃者の作業を遅らせるものの、リバースエンジニアリングを完全に防ぐことはできません。重要なシークレットは決してクライアントコードに保存すべきではありません。

4

本番環境のReact NativeアプリケーションでAPIキーやシークレットをどのように扱うべきですか?

5

root/jailbreak検出とは何で、React Nativeでどのように実装しますか?

+17 面接問題

次の面接に向けてReact Nativeをマスター

すべての問題、flashcards、技術テスト、コードレビュー演習、面接シミュレーターにアクセス。

無料で始める