Где останавливается песочница?
Я использовал приложение Norton iAntivirus из Mac App Store для сканирования всего жесткого диска. Как и ожидалось, он подарил мне диалог открытия в корне моего жесткого диска. Я нажал "Открыть" и позволил сканировать. Это заставило меня задуматься... если пользователь открывает каталог в диалоговом окне Открыть, дает ли это изолированное приложение доступ ко всему содержимому папки, даже если конкретный пользователь может не иметь доступа к некоторым из них?
2 ответа
"Песочнице" предоставляется только доступ к тому, что пользователь может получить. Таким образом, если пользователь открывает папку в диалоговом окне "Открыть", к которой у него нет прав доступа, приложение также не сможет открыть ее. Я проверил это на OS X 10.8.3. Я дал своему пользователю Нет прав доступа к папке на рабочем столе, открыл рабочий стол в диалоговом окне Открыть, а затем попытался записать файл в папку с ограниченным доступом. Действие не выполнено с ошибкой. У вас нет прав на сохранение файла "файл" в папке "с ограничениями".
Моей главной заботой было то, что песочницей управляет демон песочницы, sandboxd
, который принадлежит пользователю root. Поэтому я боялся, что sandboxd
дал бы приложениям неограниченный доступ ко всему, что открыто в диалоге открытия (так как пользователь root может получить доступ ко всему), но это не так.
Разрешение "песочница" только на чтение или чтение и запись является дополнительным требованием, которое необходимо для доступа к файловой системе при работе в песочнице. Для любого элемента, находящегося за пределами контейнера приложения, приложению должно быть предоставлено право на чтение или чтение-запись - либо статически с помощью прав, скомпилированных в приложение, либо динамически пользователем, выбирающим файл или папку, - и пользователь должен иметь соответствующую файловую систему. право доступа к элементу файловой системы.
Например, если пользователь предоставляет вашему приложению доступ для чтения и записи к общедоступной папке других пользователей с помощью стандартного диалогового окна файла, это не означает, что пользователь может только читать содержимое общедоступной папки и выполнять запись в содержащуюся папку Drop Box.
При условии наличия соответствующего права доступа к файловой системе пользователь, предоставляющий доступ к песочнице через стандартный файловый диалог к папке, предоставляет доступ ко всей файловой иерархии с корнем в этой папке.