#std801¶
Ограничения на использование Выполнить и Вычислить на клиенте¶
1.¶
В общем случае рекомендуется отказаться от исполнения произвольного кода через Выполнить и Вычислить.
Рекомендация не относится к неизменному внешнему коду, который можно проверить заранее: например, расширению перед подключением администратором или внешнему отчету перед интерактивным открытием. Проверяйте источник получения кода и, если опубликована, его хеш-сумму.
2.¶
Для пользовательских формул рекомендуется предусматривать набор допустимых составляющих и вычислять результат без Выполнить и Вычислить.
2.1.¶
Если формулу нельзя представить набором предусмотренных составляющих, вычисляйте ее на сервере в безопасном режиме. Дополнительно исключите вызовы методов платформы и функций конфигурации, кроме явно предусмотренных.
При использовании БСП рекомендуется применять подсистему КонструкторФормул.
3.¶
На клиенте нет ограничений на выполнение кода, переданного в Выполнить или Вычислить.
Недопустимо получать текст с сервера, в том числе из базы данных, и исполнять его как произвольный код на клиенте: это может причинить вред компьютеру пользователя.
3.1.¶
Если динамическое выполнение используется для технологических задач, например вызова функции по имени, рекомендуется заменить его прямыми вызовами.
Прямой вызов
3.2.¶
Если отказаться от Выполнить или Вычислить невозможно, проверяйте, что динамическая часть содержит только допустимое имя функции, полное имя из корректных имен через точку или имя переменной.
Проверка должна находиться в той же процедуре или функции непосредственно перед динамическим выполнением.