﻿# V5624\. OWASP\. Use of potentially tainted data in configuration may lead to security issues\.

Анализатор обнаружил, что для конфигурации используются данные из внешнего источника\. Это может привести к возникновению дефекта безопасности\. 

Уязвимости такого типа относятся к категории рисков [OWASP Top 10 Application Security Risks 2021: A5:2021 \- Security Misconfiguration](https://owasp.org/Top10/en/A05_2021-Security_Misconfiguration/)\.

Приведём пример:

```cpp
public void ExecuteSqlQuery(....)
{
  ....
  string catalog = Request.QueryString["catalog"];
  using (SqlConnection dbConnection = IO.GetDBConnection())
  {
    dbConnection.ConnectionString = $"Data Source=....; " +
                                    $"Initial Catalog={catalog}; " +
                                    $"User ID=....; " +
                                    $"Password=....;";
    ....
  }
  ....
}
```

В этом примере формируется строка подключения к БД\. В параметр 'Initial Catalog' записываются данные, не прошедшие никакой валидации, благодаря чему злоумышленник может передать любое название каталога\. Подобным образом он может получить информацию, доступ к которой не был предусмотрен\.

Для защиты от подобных атак стоит производить валидацию входных данных\. Пример корректного формирования строки подключения:

```cpp
public void ExecuteSqlQuery(...., HashSet<string> validCatalogNames)
{
  ....
  string catalog = Request.QueryString["catalog"];

  if(!validCatalogNames.Contains(catalog))
    return;

  using(SqlConnection dbConnection = IO.GetDBConnection())
  {
    dbConnection.ConnectionString = $"Data Source=....; " +
                                    $"Initial Catalog={catalog}; " +
                                    $"User ID=....; " +
                                    $"Password=....;";
    ....
  }
  ....
}
```

В данном случае проверяется, что 'catalog' содержится в коллекции 'validCatalogNames'\. Таким образом, пользователь будет иметь доступ лишь к определённому перечню каталогов, что не позволит получить приватную информацию\.