All apps from the App Store are sandboxed and don't have access to the data of other apps, other than by using dedicated APIs. For apps distributed outside the App Store, this feature is optional but highly recommended.
A non-sandboxed app has the same access rights as the user executing it, which means if it gets compromised by exploiting some vulnerability, the attacker gets user privileges.
The way App Sandbox handles this is by providing an app only with the access rights it needs to perform its tasks; additional access may be explicitly granted by a user:
Figure 1: App Sandbox explained
Here are examples of the resources that a sandboxed app has to request explicitly in order to use them:
- Hardware (such as a camera or microphone)
- Networks
- App data (such as a calendar or contacts)
- User files