Probabilmente sto scrivendo un sistema di plugin per un'applicazione Cocoa (Mac, non iPhone).Objective-C Plugin Architecture Security (Mac, non iPhone)
Un approccio comune è rendere ciascun plugin un pacchetto, quindi iniettare il pacchetto nell'applicazione principale. Mi preoccupo delle implicazioni sulla sicurezza di ciò, poiché il bundle avrà accesso completo al runtime Objective-C. Sono particolarmente preoccupato per un plugin che ha accesso al codice che gestisce la registrazione e le chiavi seriali.
Un altro sistema di plugin che stiamo considerando è basato su notifiche distribuite. Fondamentalmente, ciascun plugin sarà un processo separato e comunicherà solo tramite notifiche distribuite.
C'è un modo per caricare i pacchetti in modo sicuro (ad esempio sandboxing)? In caso contrario, riscontrate problemi nell'utilizzo delle notifiche distribuite? Ci sono altre architetture di plugin che potrebbero essere migliori?
Grazie per il collegamento sandboxing. In realtà stavo parlando di "NSDistributedNotificationCenter", ma guarderò meglio gli oggetti distribuiti. La mia preoccupazione per i bundle è che gli sviluppatori di plug-in useranno 'objc_getClassList' e avvieranno metodi di swizzling/call che non dovrebbero toccare, sia che si tratti di crack o meno. Sembra che un processo separato sia sicuramente la strada da percorrere. –