2014-04-11 2 views
1

내 앱에 NSKeyedArchiver archiveRootObject: toFile:을 사용하여 .sav 파일에 개체를 저장하도록했습니다. 그러나 사용자가 textedit에서 .sav 파일 중 하나를 열고 변경하면 다음에 열릴 개체를 보관하지 못하고 작업을 중단한다는 것을 알았습니다.읽기 전용 파일에 개체 보관

루트 개체를 읽기 전용 파일로 보관하거나 사용자가 편집하지 못하게 할 수있는 방법이 있습니까? 그것들은 애플리케이션 지원에 묻혀서 슈퍼 유저가 아니지만 안전하게 플레이하고 싶습니다.

답변

2

사용자가 데이터를 조작하는 것에 대해 걱정할 경우 최종적으로 파일을 삭제할 수있는 저장 상태를 잃을 가능성을 피할 방법이 있다고 생각하지 않습니다. look at NSSecureCoding .

"손상된"데이터의 보관을 피하고 무결성을 보장하는 방법이라고 생각합니다. 주제를 더 자세히 살펴 보지 않았으므로 특정 필드의 내용 (즉, 객체 유형은 동일하지만 값이 다릅니다).

결론적으로 사용자의 보안을 우회하려는 사용자의 생각으로 시스템을 구축하고 사용자가 데이터를 조작/삭제하지 못하게하고 잘못된 데이터를 확인하는 것이 더 안전하다고 생각합니다. 예를 들어 잘못된/손상/누락 된 데이터의 경우 기본값 (즉, 앱이 처음 실행되는 것처럼)으로 되돌아갑니다.

+0

그래, 뭔가가 손상된 경우 응용 프로그램의 모든 데이터를 재설정하기 만하면이 경로가 끝났습니다. –

3

응용 프로그램에서 이러한 종류의 오류를 처리 할 수 ​​있어야합니다.

또한 데이터를 보관 한 다음 파일을 읽기 전용으로 설정했다고 가정합니다. 결정된 사용자가 다시 읽기/쓰기를하지 못하게하는 요인은 무엇입니까?

파일 무결성을 확인하기 위해 일종의 체크섬을 사용할 수 있지만이 경우 자신의 롤을 사용해야 할 수 있습니다.

관련 문제