Безопасный режим и привилегированный режим исполнения кода

Печать (Ctrl+P)

По материалам документации платформы 1С:Предприятие 8

Наибольшую опасность представляют оператор встроенного языка Выполнить() и встроенная функция Вычислить(). Они позволяют выполнить фрагмент кода, который передается им в качестве строкового значения. Если такой фрагмент кода формируется пользователем, а выполняется на сервере, то это представляет потенциальную угрозу для безопасности системы. В то же время возможность выполнения кода, введенного пользователем, необходима.

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

Начиная с версии 8.2 в глобальном контексте реализован метод УстановитьБезопасныйРежим(<БезопасныйРежим>), позволяющий включить (истина) или выключить (ложь) безопасный режим, и метод БезопасныйРежим(), позволяющий проверить, включен или выключен безопасный режим.

 УстановитьБезопасныйРежим(<БезопасныйРежим>) 

В безопасном режиме ( значение истина) действуют следующие ограничения:

  • привилегированный режим отменяется, если он был установлен,
  • попытки перейти в привилегированный режим игнорируются,
  • запрещены операции с COM-объектами,
  • запрещена загрузка и подключение внешних компонентов,
  • запрещен доступ к файловой системе, кроме временных файлов,
  • запрещен доступ к Интернету.

Работа расширения в безопасном режиме

Если при старте «1С:Предприятия» ваше расширение успешно применилось к конфигурации, это еще не гарантия того, что все расширяющие методы, которые находятся в расширении, будут выполняться. Это связано с безопасностью.

В обычном режиме исполнения встроенного языка будут расширяться все методы конфигурации – и клиентские, и серверные.

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

Стандартно расширение создается с установленным флажком Безопасный режим :

Рис 1. Установка безопасного
 режима в свойствах расширения

Но в режиме 1С:Предприятие при открытии, например, формы элемента справочника, в модуле которого создан расширяющий метод, появится всплывающее окно с сообщением об ошибке расширения модуля объекта справочника. Чтобы увидеть более подробное сообщение, нужно нажать на это всплывающее окно или на гиперссылку Информация для технической поддержки в окне информации о программе:

Рис 2 Сообщение об ошибке расширения модуля объекта в режиме «1С:Предприятие»

Из сообщения видно, что расширение применено к конфигурации, но та часть, которая отвечает за расширение модуля, работать не будет. Причина ошибки в том, что расширение применено к конфигурации в безопасном режиме.

Чтобы расширение модуля заработало, нужно снять у него флажок Безопасный режим в списке расширений.

Если же ваше прикладное решение работает в клиент-серверном варианте, то возможность расширения серверных модулей регулируется профилем безопасности. Имя профиля безопасности задается здесь же, в списке расширений, в колонке Безопасный режим, имя профиля безопасности (см. рис.1). В самом профиле безопасности вы можете или разрешить расширение для всех серверных модулей, а исключения перечислить в свойстве Недоступные для расширения модули, или просто перечислить все разрешенные расширения модулей в свойстве Доступные для расширения модули.

Previous Article
Next Article

One Reply to “Безопасный режим и привилегированный режим исполнения кода”

  1. САло

    Скопипастить из портала 1С пост много труда не нужно…
    Но, вот, там, как всегда, у чванливых желтоглазиков идет игра “догадайся сам чего я имел в виду”
    В частности, фраза: “Имя профиля безопасности задается здесь же, в списке расширений, в колонке Безопасный режим, ИМЯ ПРОФИЛЯ БЕЗОПАСНОСТИ (см. рис.1).”
    ГДЕ на рисунке 1 это самое имя профиля безопасности?
    Видел такое кто – нибудь?))

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.