bsl-language-server
bsl-language-server copied to clipboard
[NEW] Использование установки привилегированного режима в экспортном методе
Описание проблемы, ошибки, которую надо диагностировать
Потенциально опасны любые экспортные процедуры и функции, которые выполняют на сервере какие-либо действия с предварительной безусловной установкой привилегированного режима, так как это отключает проверку прав доступа текущего пользователя. Особого внимания требуют экспортные процедуры и функции клиентского прикладного программного интерфейса сервера 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"
Предлагаю тег good first
День добрый! Как-то можно это решить?
Буквально вчера обсуждали, это false positive. Нужно завести задачу и пофиксить. Ну и таки речь не про эту диагностику (ещё не разработанную, а про #3003