2010-12-10 2 views
0

내 앱은 사용자 인증 여부를 나타내는 데이터베이스 (핵심 데이터)에 플래그를 저장합니다. 누군가가 "핵심 데이터"데이터베이스에 액세스하고 거기에서 정보를 변경하는 것이 얼마나 쉽거나 어렵습니까 을 통해 앱을 통과하지 않습니까?iPhone에 저장된 "핵심 데이터"데이터를 액세스/해킹/변경하는 것이 얼마나 쉽거나 어렵습니까?

"이 사용자는 인증되었습니다"라는 플래그를 저장하려고하므로 다시 인증 할 필요가 없습니다. 이것은 재미있는 응용 프로그램이 아니라 은행 애플 리케이션, 그래서 그게 괜찮은지 궁금해.

다른 말로 표현하기 : 정규 iPhone 사용자 (물론 jailbroken이 아님)가 "핵심 데이터"데이터베이스를 엉망으로 만들 수는 없으며이 데이터베이스는 해당 아이폰 앱을 통해서만 액세스 할 수 있다고 가정해야합니까?

답변

2

iOS 앱 샌드 박스는 기기에서 매우 단단합니다. 다른 앱은 데이터베이스에 액세스 할 수 없으며 사용자가 장치에 액세스 할 수도 없습니다.

그러나 응용 프로그램의 Documents 디렉토리에있는 응용 프로그램 데이터는 iTunes를 통해 백업됩니다. 그런 일은 한번도 시도한 적이 없지만 사용자가 앱을 설치하고 실행하지만 인증되지 않은 시나리오를 상상할 수 있습니다. 그는 동기화하고 사용자 데이터는 컴퓨터에 기록됩니다. 그는 자신의 PC에 백업 된 리소스를 열어 (iTunes는 암호화하거나 난독 화 함) sqlite 데이터베이스 또는 plist를 인증 된 것으로 변경하는 방법을 파악합니다. 그런 다음 장치에서 응용 프로그램을 제거한 다음 iTunes를 통해 다시 설치하여 자신을 인증합니다.

시나리오가 가능하면 대신 캐시 디렉토리 (iTunes가 동기화 될 때 백업되지 않는 디렉토리)에 데이터베이스를 저장할 수 있습니다. 사용자가 장치를 복원해야하는 경우 데이터베이스가 사라진다는 것을 의미하지만 시나리오에서 허용되는 손실 일 수 있습니다. 모르겠습니다.

편집 나는 데이터베이스는 정보를 저장하는 가장 좋은 장소가 아니다 렘에 동의하고 위의 아이폰 OS 3.2을 목표로하고 있다면, 키 체인은 확실히 더 나은 장소입니다.

1

jailbroken이 아닌 전화를 사용하는 사용자가 데이터를 엉망으로 만들 수 있다고 생각하지 않습니다.

4

어쨌든 Core Data를 사용해야하는 것은 아닙니다. NSUserDefaults 또는 키 체인을 사용해야합니다 (플래그 또는 연관된 사용자/암호 정보를 저장하는 경우에만 따라 다름).

사용자 기본값은 개인 데이터의 키 체인 설정을 저장하는 데 사용됩니다. 오른쪽 스크류 드라이버를 사용하십시오.

+0

키 체인으로 쉽게 작업 할 수 있습니다 : https://github.com/ldandersen/scifihifi-iphone – Josh

관련 문제