﻿# 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\.](https://owasp.org/Top10/A07_2021-Identification_and_Authentication_Failures/)

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

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

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

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

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

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