React Native

보안 모범 사례

보안 저장소, SSL pinning, 난독화, 리버스 엔지니어링 방지, 민감한 데이터

20 면접 질문·
Senior
1

React Native 애플리케이션에서 인증 토큰과 같은 민감한 데이터를 저장하는 권장 방법은 무엇입니까?

답변

인증 토큰과 같은 민감한 데이터는 react-native-keychain 또는 expo-secure-store와 같은 라이브러리를 사용하여 Keychain(iOS) 또는 Keystore(Android)에 저장해야 합니다. 이러한 시스템은 하드웨어 기반 암호화를 제공하며 루팅된 기기에서도 데이터 추출을 방지합니다. 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, 기술 테스트, 코드 리뷰 연습, 면접 시뮬레이터에 접근하세요.

무료로 시작하기