Область применения: управляемое приложение, мобильное приложение, обычное приложение.
При работе в режиме управляемого приложения, клиентское приложение (тонкий или веб-клиент) обращается к серверу 1С:Предприятия посредством открытого HTTP-протокола. Таким образом, сервер 1С:Предприятия может быть вызван извне сторонними программами тем же способом, как это штатно делает клиентское приложение, и злоумышленник может получить несанкционированный доступ к пользовательским данным, нарушить работоспособность сервера.
1. Несанкционированный вызов серверного кода конфигурации с клиента.
1.1. Потенциальную угрозу безопасности представляют все серверные процедуры и функции, доступные для вызова из клиентского кода. Они составляют прикладной программный интерфейс сервера 1С:Предприятия. К ним, как правило, относятся:
&НаКлиенте Процедура УволитьСотрудника(Команда) Если ДатаРегистрацииУвольнения > ДатаЗапрета Тогда ЗарегистрироватьУвольнение(); КонецЕсли; КонецПроцедуры &НаСервере Процедура ЗарегистрироватьУвольнение() ... КонецПроцедурыПример стороннего кода, вызывающий напрямую серверную процедуру для обхода проверки, предусмотренной разработчиком формы в обработке команды УволитьСотрудника:
ПараметрыФормы = Новый Структура("Ключ", ВыбранныйСотрудник) Форма = ПолучитьФорму("Справочник.Сотрудники.ФормаЭлемента", ПараметрыФормы); Форма.ЗарегистрироватьУвольнение();
1.2. В общем случае не рекомендуется размещать в серверных процедурах и функциях модулей форм код, обеспечивающий бизнес-логику, и который не относится к клиент-серверному взаимодействию и обработке реквизитов формы.
1.3. Особого внимания требуют серверные процедуры и функции, использующие установку привилегированного режима, или размещенные в общих модулях с признаком Привилегированный.
2. Проникновение небезопасного кода на сервер и его выполнение.
Любые возможности конфигурации по выполнению "внешнего" кода или произвольных текстов запросов на сервере, не являющихся частью самого прикладного решения, представляют серьезную опасность.
Также опасны внешние отчеты и обработки, COM-объекты и внешние компоненты. В частности, код внешних обработок может непосредственно обращаться ко всем общим модулям без признака "Вызов сервера", к модулям объектов и менеджеров объектов конфигурации, пытаться переходить в привилегированный режим.
Такие возможности создают прямую угрозу работоспособности сервера из-за некорректного или преднамеренно вредоносного кода: порчу или похищение данных, зависание или остановка рабочего процесса из-за зацикливания, утечек памяти, ресурсоемких операций и запросов и т.д.
Подробнее см. Ограничение на выполнение "внешнего" кода.
3. Клиентское приложение (тонкий клиент или веб-браузер) не гарантирует безопасность данных, переданных на сторону клиента. Эти данные легко могут быть перехвачены и прочитаны вредоносным программным обеспечением, установленным на клиентском компьютере.
Серверные процедуры и функции должны возвращать в форму только окончательный результат расчета. Следует избегать передачи в форму исходных или промежуточных данных, которые могут раскрывать побочную, возможно приватную информацию бизнес-процесса.