# 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.

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

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

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

    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'. Таким образом, пользователь будет иметь доступ лишь к определённому перечню каталогов, что не позволит получить приватную информацию.

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

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

CWE-15