РазрешениеНаИспользованиеПривилегированногоРежима
Здравствуйте! Кто-нибудь в расширениях, подключенных в безопасном режиме, пробовал устанавливать привилегированный режим? База файловая; цель - считать данные из безопасного хранилища под пользователем без прав на чтение из РС "БезопасноеХранилищеДанных".
На текущий момент реализация следующая:
Контекст обработки расширения:
Контекст модуля менеджера регистра сведений "сэ_НастройкиИнтеграции":
Или не получится это реализовать?
На текущий момент реализация следующая:
Контекст обработки расширения:
&НаКлиенте
Процедура ЗапроситьИспользованиеПривилегированногоРежима()
Описание = НСтр("ru = 'Чтение пароля из безопасного хранилища.'");
Разрешения = РазрешениеНаПривилегированныйРежим(Описание);
Оповещение = Новый ОписаниеОповещения("ПолучениеРазрешенияПривилегированныйРежим_Завершение", ЭтотОбъект);
РаботаВБезопасномРежимеКлиент.ПрименитьЗапросыНаИспользованиеВнешнихРесурсов(Разрешения, ЭтаФорма, Оповещение);
КонецПроцедуры
&НаСервере
Функция РазрешениеНаПривилегированныйРежим(Описание)
МодульРаботаВБезопасномРежиме = ОбщегоНазначения.ОбщийМодуль("РаботаВБезопасномРежиме");
ЗапросыРазрешений = Новый Массив;
Разрешения = Новый Массив;
Разрешения.Добавить(
МодульРаботаВБезопасномРежиме.РазрешениеНаИспользованиеПривилегированногоРежима(Описание));
ВладелецРазрешения = ОбщегоНазначения.ИдентификаторОбъектаМетаданных(Метаданные.РегистрыСведений.сэ_НастройкиИнтеграции.ПолноеИмя());
ЗапросРазрешений = МодульРаботаВБезопасномРежиме.ЗапросНаИспользованиеВнешнихРесурсов(Разрешения, ВладелецРазрешения, Истина);
ЗапросыРазрешений.Добавить(ЗапросРазрешений);
Возврат ЗапросыРазрешений;
КонецФункции
&НаКлиенте
Процедура ПолучениеРазрешенияПривилегированныйРежим_Завершение(Результат, ДополнительныеПараметры) Экспорт
Если Не Результат = КодВозвратаДиалога.ОК Тогда
ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Не удалось прочитать пароль из безопасного хранилища!");
Модифицированность = Ложь;
Закрыть();
КонецЕсли;
ОбновитьНастройкиСервер();
КонецПроцедуры
&НаСервере
Процедура ОбновитьНастройкиСервер()
НастройкиПодключения = РегистрыСведений.сэ_НастройкиИнтеграции.НастройкиИнтеграции(Организация);
......
КонецПроцедуры
ПоказатьКонтекст модуля менеджера регистра сведений "сэ_НастройкиИнтеграции":
Функция НастройкиИнтеграции(Организация) Экспорт
УстановитьПривилегированныйРежим(Истина); - //привилегированный режим не установился....
КлючДанных = "<ТутКлючДанных>";
Пароль = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(КлючДанных); //в итоге - нет прав доступа на чтение из безопасного хранилища
Результат.Вставить("Пароль", Пароль);
УстановитьПривилегированныйРежим(Ложь);
.....
КонецФункции
ПоказатьИли не получится это реализовать?
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(4) такое ограничение сделано не зря.
Допустим злоумышленник создал расширение в котором устанавливается привилегированный режим для злонамеренных деяний.
он сам или кто-то устанавливает это расширение из приложения с заманчивым именем "мега-полезные инструменты для учета всего".
далее он совершает деяние и методами этого расширения стирает следы деяния, удаляет расширение типа - не понравилось пользователям или грузит уже "хорошее" с таким же именем.
очень плохо если расширения будут позволять так делать.
А вот если для такого необходимо писать код в основной конфигурации, то просто патчика будет мало и ничего не выйдет у хитроягодничного.
Допустим злоумышленник создал расширение в котором устанавливается привилегированный режим для злонамеренных деяний.
он сам или кто-то устанавливает это расширение из приложения с заманчивым именем "мега-полезные инструменты для учета всего".
далее он совершает деяние и методами этого расширения стирает следы деяния, удаляет расширение типа - не понравилось пользователям или грузит уже "хорошее" с таким же именем.
очень плохо если расширения будут позволять так делать.
А вот если для такого необходимо писать код в основной конфигурации, то просто патчика будет мало и ничего не выйдет у хитроягодничного.
у http-запросов "своя атмосфера" и это именно запросы, а не деструктивные модификаторы данных.
Тем более, что https и админы системы могут глушить дырки.
А внешние обработки - это одна сплошная рана в контексте безопасности данных.
Если эту рану позволить колупать с привилегиями еще и в расширении, то это уже не рана будет, а пушечная дыра.
Тем более, что https и админы системы могут глушить дырки.
А внешние обработки - это одна сплошная рана в контексте безопасности данных.
Если эту рану позволить колупать с привилегиями еще и в расширении, то это уже не рана будет, а пушечная дыра.
(9) пушечная дыра - для клиент-серверного варианта, но там есть профили безопасности и вот в клиент-серверном варианте вообще без проблем устанавливается привилегированный режим в расширении, подключенном в безопасном режиме, если это расширение добавить в профиль безопасности. Те, кто в файловом варианте работают - сами на свой страх и риск все подключают/добавляют. Просто хотелось сделать что-то универсальное, не снимая галки "Безопасный режим"
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот