Книга знаний

Рекламное место пустует
1С:Предприятие / v8 / Администрирование / Безопасность

v8: Безопасность запуска внешних обработок

К сожалению, в 1С если есть право на запуск внешних обработок, то невозможно контролировать запуск этих внешних обработок. Нет события "ПриЗапускеВнешнейОбработки". Поэтому становится невозможным даже элементарная запись в журнал регистрации этих событий. Предлагаю схему для обхода.Автор статьи: Гений 1С
Последняя редакция №1 от 07.06.07
URL: http://kb.mista.ru/article.php?id=547

Ключевые слова: безопасность,внешняя обработка


Предлагаю всем пользователям отключить право на запуск внешних обработок.
В меню сервис добавить пункт "Запуск внешней обработки".
При нажатии на эту кнопку вызывается процедура-обработчик, которая запускает функцию обОткрытьИнтерактивноВнешнююОбработку:

Функция обОткрытьИнтерактивноВнешнююОбработку(ИмяФайла="", КодДоОткрытия="", КодПослеОткрытия="", ПричинаОтказа=Неопределено, ВыбиратьФайл=истина) Экспорт
    #Если Клиент Тогда

    Если ВыбиратьФайл Тогда
        Д=Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
        Д.Фильтр= "Файл внешней обработки 80(*.epf)|*.epf";
        Д.ПроверятьСуществованиеФайла=истина;
        Если НЕ Д.Выбрать() Тогда
            ПричинаОтказа=1;
        КонецЕсли;
        ИмяФайла=Д.ПолноеИмяФайла;
    КонецЕсли;
    
    Отказ=ложь;
    Выполнить(КодДоОткрытия); //Код выполняется до открытия внешней обработки
    Если Отказ Тогда
        ПричинаОтказа=2;
        Возврат Неопределено;
    КонецЕсли;
    Попытка
        ВнешняяОбработка=ВнешниеОбработки.Создать(ИмяФайла);
    Исключение
        ПричинаОтказа=3;
        Предупреждение("Не удалось открыть внешнюю обработку:"+Д.ПолноеИмяФайла);
        Возврат Неопределено;
    КонецПопытки;
    Форма=ВнешняяОбработка.ПолучитьФорму();
    Форма.Открыть();
    Выполнить(КодПослеОткрытия); //Код выполняется после внешней обработки
    Если Отказ Тогда
        ПричинаОтказа=4;
        Возврат Неопределено;
    КонецЕсли;
    Возврат ВнешняяОбработка;
#КонецЕсли

КонецФункции


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

Естественно, до вызвова функции нужно проверить в обработчике, доступно ли пользователю право запуска внешних обработок.

В 1С пользователь даже без права запуска внешних обработок может программно открывать внешние обработки, но не может открывать их из табло.
Закладка

Описание | Рубрикатор | Поиск | ТелепатБот | Захваченные статьи | Установки | Форум
© Станислав Митичкин (Волшебник), 2005-2021 | Mista.ru

Яндекс.Метрика