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"));
// ....