티스토리 뷰
안녕하세요 :) Zedd입니다.
오늘은 Apple의 Sandbox정책과 Files앱에 대해서 알아봅시댜
Apple의 Sandbox정책과 Files앱
SandBox....제가 엄청ㅇㅇㅇㅇㅇ~~예전에 Sandbox에 대해서 딱 한번 언급한적이 있는데...
바로 < Swift에서 키보드 입력 받는 방법 >에서 언급을 했었죠
저기 Sandbox한줄 정의로는 잘 감이 안오실 수도 있습니다. 자세하게 설명해드릴게요.
Apple이 "보안"에 굉장히 민감하다는 사실을 알고계실겁니다.
아주아주 민감해요.
사용자 정보에 접근하려면 반드시!!!!!반드시 사용자에게 명시적으로 허락을 받아야 합니다.
그런 Alert많이 보시죠?
Sandbox는 커널수준에서 시행되는 접근 제어 기술이에요.
만약에 Sandbox가 왼쪽 그림처럼 없다고 생각해볼게요. 우리의 앱을 실행하는 사용자는 모든 권한을 가지며, 사용자가 접근 할 수 있는 모든 리소스에 접근할 수 있게 됩니다. 이럴경우에.....어떠한 문제점이 있을까요?
-> 해당 앱이나 연결된 프레임워크에 보안적인 허점이 있는 경우, 공격자는 해당 앱을 제어하기 위해 해당 취약점을 악용할 수 있으며, 공격자는 사용자가 수행할 수 있는 모든 작업을 수행할 수 있게 됩니다.
이 문제를 완화하도록 설계된게 바로 App을 Sandbox화 하는거에요!!!
App Sandbox전략은 2가지입니다.
1. App Sandbox를 사용하면, 앱이 시스템과 상호 작용하는 방식을 설명할 수 있습니다.
시스템에서 작업을 완료하는 데 필요한 접근권한을 앱에 "부여"하는 것이죠.
2. App Sandbox를 사용하면, 열기 및 저장, 드래그 앤 드롭 및 친숙한 사용자 상호 작용을 통해
앱에 투명하게 추가 접근 권한을 부여할 수 있습니다.
자. 생각해봅시다.
우리의 앱 "하나"가 저렇게 Sandbox화 되어있는 거에요.
이렇게 보안을 중요시 하는 Apple 덕분에?.. iOS는 앱 설치시 각 앱(환경설정 및 데이터 포함)을 Sandbox에 저장해요.
Sandbox는 파일, 환경설정, 네트워크 리소스, 하드뒈어 등에 대한 앱의 접근을 제한하는 세분화된 제어 집합이라고 볼 수 있습니다.
이렇게 되어 있기 때문에, 데이터를 분리하여 고립시키고, 보안 침해의 가능성을 낮춰줄 수 있는 것이죠.
그렇다면 이 말은 뭐냐? 내 앱은 내 앱안에 있는 데이터 이외에는 접근을 못한다는 것입니다.
사용자 데이터는 앱 "외부"에 있죠? 이건 사진이 될수도 있고 연락처가 될수도 있고...아무튼 앱 "외부"에 있으므로 이렇게 Sandbox화 된 내가 만든 앱은 사용자 데이터에 접근을 못합니다.
==> 엥;;;나 사진이랑 그런거 다 접근 할 수 있는데?
네 위에서 말했다 시피, "접근 권한"을 사용자가 명시적으로 허용했을 때만 최소한으로 접근 할 수 있죠.
여전히 민감한 데이터들은 접근 자체가 불가하다고 해요.
이런 폴더들...다 App입니다. 다 따로따로 저렇게 저장이 됩니다. :)
그래서!! 굉장히 불편했었죠. 바로
파일앱이 나오기 전까진요. (지금이 굉장히 편하다는 뜻은 아님 ㅎ)
만약에 제가 앱에서 문서를 하나 만들었어요. 그럼 이 파일앱이 나오기 전까지는,
이 문서를 읽으려면 그 문서를 만든 앱을 가서 다시 봐야했어요.
왜냐?????? App은 Sandbox구조로 되어있음 ㅇㅇ. 내가 만든 문서는 내 앱의 파일 공간에만 저장이 되거든 ㅇㅇ
외부에서 접근을 못한다 이거죠. 앱이 외부에 있는 데이터들은 접근 권한을 통해 어케어케 접근이 가능하지만, 앱 내부에 있는 데이터들은 해당 앱을 통해서 밖에 보지 못했어요.
그러나..iOS 11에서 위 Files(한글로는 파일) 앱이 나오게 되었죠.
Mac의 Finder라고 보시면 될 것 같습니다..
써드파티 어플리케이션과 연동해서 사용 할 수도 있고, 검색, 정렬 등 다양한 기능을 가지고 있죠. 그리고 iCloud와도 연동되어서 휴대폰으로 내 Mac에 있는 파일들을 볼 수 있음 ㅎ...
이 말은 뭐냐? 내가 앱에서 파일을 받아서 클라우드 서비스, 뭐 iCloud에 다운받는다고 치면, 내가 폰으로 받았지만!!!!!내 Mac에서도 볼 수 있다는 것이죠.
Sandbox에 대해서 조금 아시겠나요?
이제 이 한줄이 무슨뜻인지 감이 오셨으면 합니다 :)
혹시 틀린점이나!!!!!!더 추가해야할 부분이 있다면 댓글이나 PC화면 오른쪽 하단에 있는 채널서비스를 이용해서 메세지 주세요 :)
도움이 되었길 바래요!!XD
참고 :
https://programmers.co.kr/learn/courses/ios-swift입문/lessons/sandbox
'iOS' 카테고리의 다른 글
iOS ) FileManager 사용하면서 알아두면 좋을 것들 (3) | 2018.02.26 |
---|---|
iOS ) 내 App의 데이터 보기 (0) | 2018.02.23 |
iOS ) UITextfield에 Static Prefix를 넣고싶다면... (1) | 2018.02.20 |
iOS ) CAEmitterCell 프로퍼티 정리 (0) | 2018.02.17 |
iOS ) shouldChangeCharactersIn range / NSRange (3) | 2018.02.16 |
- iOS delegate
- swift 공부
- UIBezierPath
- np-complete
- SwiftUI
- Xcode
- 피아노
- Accessibility
- 스위프트 문법
- 회고
- 제이슨 파싱
- Swift
- WWDC
- swift delegate
- Git
- swift sort
- Combine
- np-hard
- 스위프트
- github
- swift3
- swift array
- swift tutorial
- IOS
- ios 13
- fastlane
- actor
- FLUTTER
- WKWebView
- WidgetKit
- Total
- Today
- Yesterday