Перейти к содержанию
#std678

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

1.

Злоумышленник может вызвать серверный код с клиента. Например, он может выполнять запросы по HTTP, пытаясь повторить поведение клиента платформы. Своими действиями злоумышленник не должен получить несанкционированный доступ к данным пользователей или нарушить работоспособность сервера.

1.1.

Все серверные функции, доступные для вызова с клиента представляют потенциальную угрозу.

  • Экспортный процедуры и функции из общих модулей с флажками Сервер и Вызов сервера. Такие функции можно вызывать напрямую с клиента. #std679
  • Функции модулей форм с директивами компиляции &НаСервере, &НаСервереБезКонтекста. Такие функции можно вызывать в контексте клиента после получения формы, даже когда функции не экспортные.

Уязвимость

Код модуля формы Справочник.Сотрудники.ФормаЭлемента
&НаКлиенте
Процедура УволитьСотрудника(Команда)

    Если ДатаРегистрацииУвольнения > ДатаЗапрета Тогда
        ЗарегистрироватьУвольнение();
    КонецЕсли;

КонецПроцедуры

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

При разработке формы исключите из кода ее модуля бизнес-логику. Код формы должен содержать только клиент-серверное взаимодействие и обработку реквизитов формы.

1.3.

Тщательно тестируйте код, в котором устанавливается привилегированный режим или который расположен в общих модулях с флажком Привилегированный. #std485

2.

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

  • Внешние отчеты и обработки
  • COM-объекты
  • Внешние компоненты

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

Такие возможности создают угрозы #std669:

  • Работоспособности сервера
  • Порчу или хищение данных
  • Зависание или зацикливание рабочего процесса
  • Утечки памяти
  • Ресурсоемкие операции и запросы
3.

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

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

Источник

https://its.1c.ru/db/v8std#content:678