Перейти к содержимому
Noroxi

CWE-306 · 2 686 записей

Отсутствие аутентификации для критической функции

Почему это происходит?

Функция, добавленная для разработки или поддержки, попадает в продуктивную среду без аутентификации. Нередко расчёт делается на то, что она «доступна только из внутренней сети».

Уязвимый и исправленный код

Показательный учебный пример. Выделенные строки показывают, где ошибка и где исправление.

Уязвимый код

ts
// Добавлено для службы поддержкиapp.post("/maintenance/reset", resetDevice);

Исправленный код

ts
if (config.maintenanceEnabled) {  app.post(    "/maintenance/reset",    requireSession, requireRole("admin"), resetDevice  );}

Как предотвратить

  1. 01Исключайте функции обслуживания и отладки из продуктивной сборки.
  2. 02Если функцию нужно оставить, защитите её проверкой прав и отдельным флагом конфигурации.
  3. 03Не подменяйте аутентификацию сетевым расположением.

CVE этого класса

2 688 записей

Все классы уязвимостей