security-reactnative について
New Architecture を採用した React Native 0.87 向けのセキュリティ実践スキルです。機密データの保存、ネットワーク設定、ネイティブモジュールの検証、よくあるリスクを扱います。
主な機能
- 01Keychain、Keystore、SecureStoreで秘密情報を保存
- 02iOSとAndroidでHTTPSポリシーを徹底
- 03TurboModulesの入力をネイティブ側で検証
- 04ディープリンクとWebViewのリスクを把握
活用シーン
- 01React Nativeアプリの機密データ保存を計画
- 02本番環境のネットワーク設定を確認
- 03ネイティブモジュール呼び出しとナビゲーション入力を監査
- 04WebViewのオリジン検証を評価
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ thebeardedbearsas/ claude-craft --skill security-reactnativeインストール後、Claude Code で/security-reactnativeを入力して読み込まれたか確認します。
詳細
セキュリティ - React Native 0.87 のベストプラクティス
このスキルでは、New Architecture を採用した React Native 0.87 のセキュリティに関するベストプラクティスを紹介します。
主な原則
- ネイティブセキュリティ:機密性の高いシークレットには Keychain(iOS)/Keystore(Android)を使用します(AsyncStorage は使用しません)
- HTTPS のみ:ATS(iOS)と Network Security Config(Android)を厳格に設定します
- 同期 JSI:TurboModules の呼び出しをネイティブ側で検証します
- Expo SecureStore:トークン向けの安全なクロスプラットフォーム抽象化
React Native 0.85 以降の特記事項
- セキュアな TurboModules:JSI で処理する前に、ネイティブ側で入力を検証します
- レガシーブリッジの削除:脆弱な JSON シリアライズのリスクがありません
- Fabric:ネイティブレンダリングを JS スレッドから分離します(UI インジェクションを抑制します)
- Hermes が必須:ネイティブバイトコードを使用します(JS バンドルのリバースエンジニアリングを防止します)
重大なアンチパターン
- ❌ トークンを AsyncStorage に保存する(平文)
- ❌ 本番環境で安全でない HTTP を使用する
- ❌ SecureStore を使用せずに PIN/生体認証を実装する
- ❌ 検証されていないディープリンクを使用する(ナビゲーションインジェクション)
- ❌ オリジンを検証せずに WebView を使用する
コメント
Markdown 対応