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