Механизм защиты от опасных действий
По материалам диска ИТС.
Механизм защиты от опасных действий от стороннего программного кода появился в платформе 1с, начиная с версии 8.3.8.
Суть механизма в том, что при выполнении потенциально опасного действия система выдает предупреждение, содержащее информацию о выполняемом действии и потенциальной опасности этого действия.
К потенциально опасным действиям относятся:
- Загрузка внешней обработки (отчета) или расширения конфигурации.
- Загрузка или обновление конфигурации/расширения.
- Доступ из внешней обработки (отчета) или расширения к следующим возможностям:
- Загрузка другой внешней обработки (отчет).
- Исполнение команды операционной системы.
- Управление пользователями.
- Загрузка внешней компоненты.
Пользователь имеет возможность разрешить или отклонить потенциально опасное действие. Если действие разрешено, в ряде случаев может потребоваться повторно выполнить разрешенное действие.
В общем случае работа с включенным механизмом защиты от опасных действий выглядит следующим образом (на примере расширения):
- При попытке добавления расширения в информационную базу, система запросит разрешение пользователя. Если пользователь разрешает это действие, то расширение добавляется в информационную базу. Если пользователь запрещает действие ‑ расширение не добавляется.
- Если для расширения включена защита от опасных действий, то при выполнении расширением одного из потенциально опасных действий (перечень действий приведен выше), система запрашивает пользователя.
- В том случае, когда пользователь разрешает то или иное потенциально опасное действие, система запоминает это разрешение в разрезе пользователя, собственно внешнего отчета, обработки или расширения и разрешенного действия. При дальнейшем использовании запрос не повторяется, если текущий пользователь для данного объекта (внешняя обработка (отчет) или расширение) уже разрешал какое-либо действие. Разрешение сохраняется в информационной базе.
Если пользователь запрещает какое-либо действие, то данный запрет не запоминается, а при следующем выполнении запрос на разрешение будет задан повторно.
В том случае, если потенциально опасное действие выполняется в том месте системы, где недоступно интерактивное взаимодействие (например, в фоновом задании), и выполняемое действие ранее не было разрешено интерактивно, то оно будет заблокировано, о чем будет выполнена запись в журнал регистрации.
Система идентифицирует объект (внешняя обработку (отчет) или расширение) по хешу этого объекта. Из этого следует, что для измененного объекта система опять будет запрашивать разрешение на потенциально опасные действия.
Механизм защиты от опасных действий проявляется:
- Во время интерактивной загрузки внешней обработки (отчет)
- При интерактивном подключении расширения .
- Во время обновления конфигурации с помощью файла обновления конфигурации
- При вызове методов Создать() и Подключить() менеджера внешних обработок (отчетов)
- При попытке выполнить команду операционной системы: ЗапускПриложения(), НачатьЗапускПриложения(), КомандаСистемы().
- При попытке записи или удаления информации о пользователе информационной базы: Записать() или Удалить() объекта ПользовательИнформационнойБазы.
- При попытке загрузить внешнюю компоненту: ПодключитьВнешнююКомпоненту(), НачатьПодключениеВнешнейКомпоненты().
- При работе с COM-объектами: ПолучитьCOMОбъект(), конструктор объекта COMОбъект().
Отключение механизма защиты от опасных действий
В ряде случае необходимо отключить механизм защиты от опасных действий. Для этого можно воспользоваться следующими возможностями:
1. Выключить флажок Защита от опасных действий (ЗащитаОтОпасныхДействий) в свойствах конкретного пользователя. Это отключит защиту для этого пользователя.
2. Воспользоваться параметром ЗащитаОтОпасныхДействий методов Создать() и Подключить() менеджеров внешних обработок (отчетов). В этом случае имеется возможность загрузить внешнюю обработку (отчет) без запросов пользователя.
3. Воспользоваться параметром DisableUnsafeActionProtection файла conf.cfg (Файл conf.cfg определяет расположение каталога общих конфигурационных файлов и язык интерфейса системы по умолчанию). В этом случае механизм защиты от опасных действий будет отключаться для всех пользователей информационных баз, строки соединения которых удовлетворяют указанным маскам.
Отключение защиты от опасных действий выполняется по следующим правилам (в указанном порядке):
1. Защита считается отключенной, если у текущего пользователя сброшен флажок Защита от опасных действий.
2. Защита считается отключенной, если строка соединения с информационной базой удовлетворяет одному из шаблонов, указанных в параметре DisableUnsafeActionProtection файла conf.cfg.
3. Если внешняя обработка (отчет) подключается с явным образом отключенной защитой с помощью параметра ЗащитаОтОпасныхДействий.
4. Если защита явным образом отключена с помощью свойства расширения ЗащитаОтОпасныхДействий.