bsl-language-server icon indicating copy to clipboard operation
bsl-language-server copied to clipboard

[NEW] Использование установки привилегированного режима в экспортном методе

Open artbear opened this issue 4 years ago • 3 comments

Описание проблемы, ошибки, которую надо диагностировать

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

Неправильно:

Процедура ИзменитьИлиУдалитьДанные(...) Экспорт

  УстановитьПривилегированныйРежим(Истина); // Отключаем проверку прав доступа
  // Изменяем данные в привилегированном режиме
  ...

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

Правильно:

Процедура ИзменитьИлиУдалитьДанные(...) Экспорт

  // Изменяем данные
  // (при этом если у пользователя недостаточно прав для выполнения операции над данными, то будет вызвано исключение)
  ...

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

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

Диагностика находит экспортные процедуры, в которых есть использование метода УстановитьПривилегированныйРежим(Истина).

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

Параметры диагностики

Тип Статья на русском

  • [ ] :ant: Ошибка
  • [ ] :cop: Уязвимость
  • [x] :guardsman: Потенциальная уязвимость
  • [ ] :poop: Качество кода
  • [ ] :trollface: Другое

Важность Статья на русском

  • [ ] :broken_heart: Блокирующая / Blocker
  • [ ] :heart: Критическая / Critical
  • [x] :yellow_heart: Важная / Major
  • [ ] :blue_heart: Незначительная / Minor
  • [ ] :green_heart: Информационная / Info
  • [ ] :revolving_hearts: Другое

Тэги Статья на русском

  • [x] STANDARD - "Нарушение стандартов 1С"
  • [ ] LOCKINOS - "Не будет работать в другой ОС"
  • [ ] SQL - "Проблема с запросом"
  • [ ] PERFORMANCE - "Проблема производительности"
  • [ ] BRAINOVERLOAD - "Непонятный код"
  • [x] BADPRACTICE - "Плохая практика программирования"
  • [ ] CLUMSY - "Излишние действия"
  • [ ] DESIGN - "Ошибка в проектировании"
  • [x] SUSPICIOUS - "Подозрительный код"
  • [ ] UNPREDICTABLE - "Непредсказуемо работающий код"
  • [ ] DEPRECATED - "Устаревшая функциональность"
  • [ ] ERROR - "Ошибочная конструкция"
  • [ ] LOCALIZE - "Проблемы локализации"

Время на исправление (минут)

5 минут

Дополнительная информация

Диагностика должна находить экспортные процедуры, в которых есть использование метода УстановитьПривилегированныйРежим(Истина) и выдавать замечания следующего формата "Исключите потенциальное опасное действие - установку привилегированного режима в экспортном методе %s"

artbear avatar Aug 13 '21 17:08 artbear

Предлагаю тег good first

artbear avatar Aug 13 '21 17:08 artbear

Screenshot_1 День добрый! Как-то можно это решить?

TPEHER avatar Jun 09 '24 04:06 TPEHER

Буквально вчера обсуждали, это false positive. Нужно завести задачу и пофиксить. Ну и таки речь не про эту диагностику (ещё не разработанную, а про #3003

nixel2007 avatar Jun 09 '24 05:06 nixel2007