# V5630. OWASP. Possible cookie injection. Potentially tainted data is used to create a cookie.

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

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

    public void ChangeCookie()
    {
      String cookieValue = Request.Form["userRole"];

      Response.Cookies.Add(
        new HttpCookie(WebLocalizationConfiguration.CookieName, cookieValue)
        {
          Expires = Clock.Now.AddYears(2),
          Path = Request.ApplicationPath
        }
      );
      ....
    }

В данном случае в `HttpResponse` добавляется новый объект класса `HttpCookie`, который инициализируется на основе данных из внешнего источника — `Request.Form`. Использование данных без какой-либо проверки или валидации может привести к тому, что злоумышленники смогут повлиять на работу приложения.

Чтобы обезопасить код от cookie-инъекции, необходимо проверить данные, которые используются для инициализации объекта класса `HttpCookie`.

Сделать это можно подобным образом:

    public void ChangeCookie()
    {
      String cultureValue = Request.Form["userRole"];

      if (!Regex.IsMatch(cultureValue, DataValidationPattern))
        return;

      Response.Cookies.Add(
        new HttpCookie(WebLocalizationConfiguration.CookieName, cultureValue)
        {
          Expires = Clock.Now.AddYears(2),
          Path = Request.ApplicationPath
        }
      );
      ....
    }

В данном случае, прежде чем инициализировать объект `HttpCookie` на основе потенциально заражённых данных, производится проверка с помощью регулярного выражения.

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

CWE-113