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

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

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

- A07:2021 – Identification and Authentication Failures.

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

    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 как критические и относятся к типу: Ошибки некорректного использования системных процедур и интерфейсов, связанных с обеспечением информационной безопасности (шифрования, разграничения доступа и пр.).

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

CWE-1391 CWE-521