Справочный материал

Безопасность прикладного программного интерфейса сервера

<em>Область применения: управляемое приложение, мобильное приложение, обычное приложение.</em>

Сервер в защищённом контуре принимает ограниченные запросы через безопасный шлюз, а внешние устройства и опасный код остаются за пределами системы.

Область применения: управляемое приложение, мобильное приложение, обычное приложение.

При работе в режиме управляемого приложения, клиентское приложение (тонкий или веб-клиент) обращается к серверу 1С:Предприятия посредством открытого HTTP-протокола. Таким образом, сервер 1С:Предприятия может быть вызван извне сторонними программами тем же способом, как это штатно делает клиентское приложение, и злоумышленник может получить несанкционированный доступ к пользовательским данным, нарушить работоспособность сервера.

1. Несанкционированный вызов серверного кода конфигурации с клиента.

1.1. Потенциальную угрозу безопасности представляют все серверные процедуры и функции, доступные для вызова из клиентского кода. Они составляют прикладной программный интерфейс сервера 1С:Предприятия. К ним, как правило, относятся:

  • Экспортные процедуры и функции, размещенные в общих модулях с признаками "Сервер" и "Вызов сервера". Вызов таких процедур и функций возможен напрямую с клиента. Подробнее см. Ограничение на установку признака "Вызов сервера" у общих модулей
  • Все процедуры и функции модулей форм объектов с директивами компиляции &НаСервере, &НаСервереБезКонтекста. Вызов таких процедур и функций доступен из контекста клиента после успешного получения формы, даже если эти процедуры и функции не экспортные. Это делает возможным вызов кода в контексте, который не предполагался разработчиком.

    Например, код модуля формы Справочник.Сотрудники.ФормаЭлемента:
    &НаКлиентеПроцедура УволитьСотрудника(Команда)    Если ДатаРегистрацииУвольнения > ДатаЗапрета Тогда        ЗарегистрироватьУвольнение();    КонецЕсли;КонецПроцедуры&НаСервереПроцедура ЗарегистрироватьУвольнение()    ...КонецПроцедуры
    Пример стороннего кода, вызывающий напрямую серверную процедуру для обхода проверки, предусмотренной разработчиком формы в обработке команды УволитьСотрудника:
    ПараметрыФормы = Новый Структура("Ключ", ВыбранныйСотрудник)Форма = ПолучитьФорму("Справочник.Сотрудники.ФормаЭлемента", ПараметрыФормы);Форма.ЗарегистрироватьУвольнение();

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

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

2. Проникновение небезопасного кода на сервер и его выполнение.

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

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

Такие возможности создают прямую угрозу работоспособности сервера из-за некорректного или преднамеренно вредоносного кода: порчу или похищение данных, зависание или остановка рабочего процесса из-за зацикливания, утечек памяти, ресурсоемких операций и запросов и т.д.

Подробнее см. Ограничение на выполнение "внешнего" кода на сервере.

3. Клиентское приложение (тонкий клиент или веб-браузер) не гарантирует безопасность данных, переданных на сторону клиента. Эти данные легко могут быть перехвачены и прочитаны вредоносным программным обеспечением, установленным на клиентском компьютере.

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

Записаться по телефону