1
0
mirror of https://github.com/1C-Company/v8-code-style.git synced 2025-04-18 14:23:27 +02:00
v8-code-style/bundles/com.e1c.v8codestyle.bsl/markdown/ru/server-execution-safe-mode.md

3.4 KiB

Отсутствует включение безопасного режима перед вызовом метода "Выполнить" или "Вычислить"

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

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

Неправильно

Выполнить(Алгоритм);
Вычислить(Алгоритм);

Правильно

УстановитьБезопасныйРежим(Истина);
Выполнить(Алгоритм);
УстановитьБезопасныйРежим(Истина);
Вычислить(Алгоритм);

В режиме сервиса:

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

Для каждого ИмяРазделителя Из РазделителиКонфигурации() Цикл
    УстановитьБезопасныйРежимРазделенияДанных(ИмяРазделителя, Истина);
КонецЦикла;

Выполнить(Алгоритм);
УстановитьБезопасныйРежим(Истина);

Для каждого ИмяРазделителя Из РазделителиКонфигурации() Цикл
    УстановитьБезопасныйРежимРазделенияДанных(ИмяРазделителя, Истина);
КонецЦикла;

Вычислить(Алгоритм);

При использовании в конфигурации Библиотеки стандартных подсистем, следует использовать:

ОбщегоНазначения.ВыполнитьВБезопасномРежиме()
ОбщегоНазначения.ВычислитьВБезопасномРежиме()

Вместо формирования строки вызова метода модуля и передачи ее в Выполнить:

ОбщегоНазначения.ВыполнитьМетодКонфигурации()
ОбщегоНазначения.ВыполнитьМетодОбъекта()

При использовании в конфигурации Библиотеки стандартных подсистем версии, меньшей чем 2.4.1, следует использовать:

РаботаВБезопасномРежиме.ВыполнитьВБезопасномРежиме()
РаботаВБезопасномРежиме.ВычислитьВБезопасномРежиме()

Вместо формирования строки вызова метода модуля и передачи ее в Выполнить:

РаботаВБезопасномРежиме.ВыполнитьМетодКонфигурации()
РаботаВБезопасномРежиме.ВыполнитьМетодОбъекта()

См.

Ограничения на использование Выполнить и Вычислить на сервере