답변
아니요, AsyncStorage는 중요한 데이터에 대해 안전하지 않습니다. AsyncStorage는 단순히 데이터를 전화기의 하드 드라이브에있는 문서에 저장하기 때문에 전화기의 파일 시스템에 액세스 할 수있는 사람이면 누구나 해당 데이터를 읽을 수 있습니다. 물론 이것이 문제가되는지 여부는 "감정적 데이터"가 무엇을 의미하는지에 달려 있습니다.
적어도 iOS에서는 Apple의 샌드 박스 정책으로 인해 데이터를 작성한 응용 프로그램에서만 데이터를 사용할 수 있습니다. AsyncStorage가 아무 데이터도 암호화하지 않기 때문에 파일 시스템에 대한 루트 액세스 권한을 가진 탈옥 된 iPhone은 원하는대로 가져 오지 않습니다. 하지만 일반적으로 민감한 데이터를 AsyncStorage에 저장하지 마십시오. 동일한 이유로 인해 디 컴파일 및 읽기가 쉽기 때문에 민감한 데이터를 자바 스크립트 코드에 하드 코딩해서는 안됩니다.
그 밖의 다른 게시물 저장 옵션은 iOS에 존재합니까? 사용할 수있는 내부 데이터베이스가 있습니까? –
이 부분에 대한 안내는 https://stackoverflow.com/a/39112472/4637196 –
저는 작업중인 프로젝트에서 AsyncStorage 용 사용자 정의 래퍼를 사용하여 데이터를 저장 한 다음 동일한 데이터를 가져 오려고했습니다 ... 너무 쉬웠습니다. .
Realm을 암호화 옵션과 함께 사용하면이 문제를 해결할 수 있으며 AsyncStorage보다 쉽고 빠르며 더 나은 솔루션입니다.
어떻게 Realm 키를 저장 했습니까? 내 믿음은 하드 코딩 된 키 또는 로컬로 저장하는 것이 가능하다는 것입니다. – yogiben
방금 내 정보가 암호화되기를 원했고 일종의 테스트 프로젝트 였으므로 다음과 같이 남겨 두었습니다 : 'let eKey = new Int8Array (64); //'realm = new Realm ({... encryptionKey : eKey}); ' – XaviMorenoM
아마도 일 수 있습니다. 1. 앱이 처음 시작될 때 임의의 키를 생성하십시오. 2. react-native-keychain과 같은 것을 사용하여 네이티브 키 체인에 저장합니다. 3. 응용 프로그램이 시작된 후 키 체인에서 해당 키를 가져옵니다. 4. 키를 사용하여 영역 인스턴스를 가져옵니다. 참고 : 키 체인을 비운 경우에는 영역 데이터베이스를 날려 버려야합니다. – duhseekoh
AsyncStorage는 중요한 정보를 저장하는 데 적합하지 않습니다. 다음과 같이 유용 할 수 있습니다 : https://github.com/oblador/react-native-keychain
페이 스북 은폐/안드로이드 키 스토어를 사용하여 암호화 된 데이터를 SharedPreferences
(Android) 및 iOS의 키 체인에 저장합니다. (나는이 공동 저작물을 공동 저작했다). 그것이 제공하는 것을 이해하기 위해 전체 readme를 읽으십시오.
안드로이드의 Base64는 안전한 데이터 저장 방법이 아닙니다. – odemolliens
@odemolliens 저장되어있는 base64 _encoded_ 문자열이 이미 암호화되어 있음을 알지 못했을 것입니다. – vonovak
나는 다시 소스 코드를 읽고 당신의 말이 맞습니다. 그러나 이미 암호화 된 경우 Base64로 인코딩 할 때 어떤 이점이 있습니까? 건배 – odemolliens
매우 민감한 앱 또는 사용자 데이터의 경우 Android 및 iOS (Android 공유 환경 설정 및 iOS 키 체인 사용)에서 iOS (iOS 키 체인 사용) 또는 https://github.com/classapp/react-native-sensitive-info과 같은 것을 시도 할 수 있습니다.
두 가지 모두 유창한 API와 함께 react-native link
과 연결하기가 쉽고 데이터를 보호 할 수있는 안전한 방법입니다. 에서
반응 - 기본 문서 - https://facebook.github.io/react-native/docs/asyncstorage.html
AsyncStorage이 응용 프로그램에 전역 간단한 암호화되지 않은 비동기, 지속적, 키 - 값 저장 시스템입니다.
키 - 값 쌍을 암호화되지 않은 형식으로 장치에 저장하므로 안전하지 않습니다.
iOS 용 키 체인과 Android 용 KeyStore를 사용하여 데이터를 안전하게 저장합니다.
- 1. React Native의 예외 전파
- 2. React Native의 'Global'모달
- 3. React Native의 서버용 mySQL
- 4. React Native의 개체
- 5. React Native의 색상이있는 이미지 TabbarIOS.item
- 6. React-native의 배열 상태 업데이트
- 7. React-Native의 custom.xcassets에서 가져온 이미지
- 8. React Native의 LayoutAnimation은 Android에서 지원됩니까?
- 9. React Native의 WebView 내부에있는 Twitter 위젯
- 10. RCTRootView를 React-Native의 rootViewController에 서브 뷰로 추가하십시오.
- 11. React Native의 다른 클래스에서 렌더링 호출
- 12. React Native의 AwesomeProject를 어떻게 사용자 정의합니까?
- 13. React Native의 코드 작성 방법에 대해 알아보십시오.
- 14. React Native의 Webview에 YouTube 비디오 포함하기
- 15. 로컬 스토리지는
- 16. 로컬 스토리지는
- 17. React Native의 입력 필드에서 포커스를 지우는 방법은 무엇입니까?
- 18. React Native의 화면 픽셀의 색상을 어떻게 얻을 수 있습니까?
- 19. 안드로이드에서 React Native의 iOS 전용 구성 요소를 올바르게 사용하는 방법
- 20. 원자 편집기에 React Native의 웹 사이트에있는 구문 테마가 있습니까?
- 21. React-native의 ReadableMap 인터페이스는 JS를 JAVA로 어떻게 변환합니까?
- 22. configureScene의 PushFromRight를 React Native의 PushFromLeft로 변경하거나 추가 할 수 있습니까?
- 23. android : React Native의 Text 구성 요소에 includeFontPadding 설정
- 24. React-Native의 YouTube 구성 요소에 요소 유형이 잘못되었습니다.
- 25. React Native의 CameraRoll에서 날짜 또는 폴더 이름별로 이미지를 정렬하는 방법
- 26. React Native의 WebView 구성 요소에서 Safari의 링크를 여는 방법
- 27. React-Native의 텍스트 구성 요소 값이 변경되지 않습니다.
- 28. React Native의 탭에서 네비게이터를 지원하는 표준 방법은 무엇입니까?
- 29. React Native의 오른쪽에 갈매기가있는 텍스트 줄 바꿈 ListView 항목 렌더러
- 30. React Native의 상위 구성 요소에서 함수를 호출 할 수 있습니까?
이 게시물을보실 수 있습니다 : https://stackoverflow.com/questions/45547657/what-is-the-best-way-to-store-private-data-in-react-native –