보안

박정빈·2026년 4월 8일

React Native 사용기

목록 보기
34/40

React Native 보안 체크리스트


1. Google Cloud Console API 키 제한

목적: Firebase 등에서 사용하는 API 키가 무단으로 사용되지 않도록 플랫폼별로 제한을 건다.

방법:

  1. Google Cloud Console 접속 → 프로젝트 선택
  2. 좌측 메뉴 → API 및 서비스 → 사용자 인증 정보
  3. google-services.jsonGoogleService-Info.plist에 있는 API 키 2개를 각각 설정

Android 키 제한

  1. Android용 API 키 클릭
  2. 애플리케이션 제한사항 → Android 앱 선택
  3. 항목 추가:
    • 패키지 이름: com.~.~
    • SHA-1 인증서 지문 추가 (확인: ./gradlew signingReport)
  4. API 제한사항 → 키 제한 → 사용하는 API만 선택 (FCM, Firebase Installations 등)
  5. 저장

iOS 키 제한

  • Android와 동일한 흐름, 번들 ID만 입력하면 됨

적용 후 앱 정상 동작 확인 필요. 제한 전파에 최대 5분 소요.


2. ProGuard 난독화 규칙

목적: 앱 배포 시 코드 축소/난독화/최적화를 적용하면서, 특정 라이브러리가 깨지지 않도록 예외 규칙을 추가한다.

방법: proguard-rules.pro에 라이브러리별 규칙 추가

카카오 SDK

-keep class com.kakao.sdk.**.model.* { <fields>; }

# https://github.com/square/okhttp/pull/6792
-dontwarn org.bouncycastle.jsse.**
-dontwarn org.conscrypt.*
-dontwarn org.openjsse.**

# retrofit2 (with r8 full mode)
-if interface * { @retrofit2.http.* <methods>; }
-keep,allowobfuscation interface <1>
-keep,allowobfuscation,allowshrinking class kotlin.coroutines.Continuation
-if interface * { @retrofit2.http.* public *** *(...); }
-keep,allowoptimization,allowshrinking,allowobfuscation class <3>
-keep,allowobfuscation,allowshrinking class retrofit2.Response

Sentry

Firebase

  • 별도 설정 없이 통과

3. 민감 데이터 암호화 저장 (Keychain / Keystore)

목적: 토큰, 비밀번호 등 민감 정보를 플랫폼 보안 영역에 안전하게 저장한다. AsyncStorage는 평문 저장이므로 절대 사용 금지.

방법:

  • react-native-keychain 사용

0개의 댓글