﻿# V5342\. OWASP\. Potentially tainted data is stored in an object that can be used as a source of trusted data\.

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

Уязвимость такого типа относится к следующим категориям OWASP Top 10: 

* [A06:2025 Insecure Design](https://owasp.org/Top10/2025/A06_2025-Insecure_Design/)
* [A04:2021 – Insecure Design](https://owasp.org/Top10/2021/A04_2021-Insecure_Design/)

Рассмотрим пример:

```cpp
public void configure(HttpSession session, HttpServletRequest request) {
  var arg = request.getParameter("arg");
  session.setAttribute("session_attribute", arg); // <=
}
```

В атрибут сессии как области доверенных данных кладётся аргумент, переданный в пользовательском запросе без каких\-либо проверок\. Опасность такого нарушения границ доверенности проявляется в зависимости от того, как в дальнейшем этот атрибут будет использован\. Например, если он используется при формировании запроса в базу данных, то это может привести к SQL\-инъекции\. 

Исправить потенциальную уязвимость можно, проверяя любые пришедшие извне параметры на их допустимость:

```cpp
public Set<String> ALLOWED = ....

public void configure(HttpSession session, HttpServletRequest request) {
  var arg = request.getParameter("arg");
  if (ALLOWED.contains(arg)) {
    session.setAttribute("session_attribute", arg);
  }
}
```