PVS-Studio.com logo
>
>
>
V5326. OWASP. A password for a database…


V5326. OWASP. A password for a database connection should not be empty

Анализатор обнаружил, что при установке соединения с базой данных используется пустой пароль. Пустой пароль не обеспечивает базовую защиту, что может привести к несанкционированному доступу к данным.

Уязвимости такого типа относятся к категории рисков OWASP Top 10 Application Security Risks 2021:

Пример небезопасной конфигурации:

var dataSource = new PGSimpleDataSource();
dataSource.setDatabaseName("db");
dataSource.setUser("server");
dataSource.setPassword("");
// ....

Параметры доступа в рабочей среде должны удовлетворять следующим требованиям:

  • пароли должны быть сложными и непредсказуемыми, чтобы их нельзя было обнаружить методом подбора. Это включает в себя: длину (от 8 символов), использование букв разного регистра, использование чисел и специальных символов;
  • у владельца учётных данных должны быть только те права, которые ему нужны. Например, не нужно давать права на запись, если требуется только чтение данных;
  • параметры доступа не должны храниться в коде. Вместо этого стоит использовать свойства, классы конфигурации или переменные среды окружения.

Исправленный пример выглядит так:

var dataSource = new PGSimpleDataSource();
dataSource.setDatabaseName("db");
dataSource.setUser(System.getProperty("db.user"));
dataSource.setPassword(System.getProperty("db.password"));
// ....

Выявляемые диагностикой ошибки классифицируются согласно ГОСТ Р 71207–2024 как критические и относятся к типу: Ошибки некорректного использования системных процедур и интерфейсов, связанных с обеспечением информационной безопасности (шифрования, разграничения доступа и пр.).

Данная диагностика классифицируется как: