Я использую MAF, чтобы предложить пользователям / клиентам возможность улучшить наше программное обеспечение. Надстройка будет работать с ограниченными разрешениями и может быть потенциально ненадежным кодом для нас, а также для клиента, если он купил надстройку у стороннего разработчика.
В нашем случае хост и адаптер на стороне хоста работают в основном домене приложения с полными разрешениями, а надстройка и адаптер на стороне надстройки работают практически без разрешений.
Когда я получаю токен надстройки через AddInStore.FindAddIns, я могу только подтвердить, что сама сборка надстройки принадлежит поставщику, как и должно быть. Если злоумышленник подменит сборку надстройки, то мы это обнаружим и не будем активировать эту сборку. Но в любом случае, поскольку он работает практически без разрешений, злоумышленник не может нанести вред приложению и среде (хосту, интрасети и т. д.).
Но что также возможно, так это то, что злоумышленник подменяет адаптер на стороне хоста в сборе. Злоумышленнику достаточно поместить новую сборку в нужную папку. Поскольку это выполняется с полными разрешениями, код злоумышленника может нанести серьезный вред приложению и среде. Поскольку злоумышленник находится между хостом и надстройкой (более или менее посредником), он также может изменить данные, которыми они обмениваются.
Когда я отлаживаю свой код, проверяя в отладчике токен надстройки, я вижу все пути к различным сборкам, которые использовало хранилище надстроек для создания конвейера:
К сожалению, важная информация о взятых Ассамблях является частной, и я не могу получить к ней доступ.
Есть ли обходной путь для доступа к этой информации?