Безопасность Архитектуры Плагина Objective C (Mac, не iPhone)

Я возможно пишу сменную систему для приложения Какао (Mac, не iPhone).

Общий подход является деланием каждого плагина пакет, затем введите пакет в главное приложение. Я обеспокоен последствиями безопасности выполнения этого, поскольку пакет будет иметь полный доступ ко времени выполнения Objective C. Я особенно обеспокоен плагином, имеющим доступ к коду, который обрабатывает регистрацию и серийные ключи.

Другая сменная система, которую мы рассматриваем, основана на распределенных уведомлениях. В основном каждый плагин будет отдельным процессом, и они свяжутся с помощью распределенных уведомлений только.

Существует ли способ загрузить пакеты надежно (например, играющий в песочнице)? В противном случае Вы видите какие-либо проблемы с использованием распределенных уведомлений? Есть ли какая-либо другая сменная архитектура, которая была бы лучше?

7
задан Tom Dalling 13 May 2010 в 04:45
поделиться

1 ответ

Да, OS X имеет поддержку песочницы на уровне процесса. Единственный сторонний клиент с открытым исходным кодом, о котором я знаю, - это Chrome . Вы также можете изучить такую ​​оболочку, как Native Client .

Тем не менее, действительно нет смысла пытаться изолировать плагины по соображениям безопасности, если только вы не загружаете ненадежные плагины или контент по сети (то есть через веб-браузер). Если кто-то хочет взломать ваше приложение локально, он может просто использовать отладчик, DTrace и т. Д.

Какой механизм IPC вы используете между процессами вашего приложения и плагина, действительно зависит от типа вашего взаимодействия. Межмашинные распределенные объекты (я полагаю, это то, что вы хотели написать), безусловно, не плохой выбор для большинства целей, но вы не захотите отправлять видео через них. Вы можете проверить CoreIPC , который используется в разрабатываемой WebKit2 ; он работает через порты Маха.

2
ответ дан 7 December 2019 в 18:40
поделиться