Skip to main content

V1.14.6 Configuration Architecture

Requirement:#

Verify the application does not use unsupported, insecure, or deprecated client-side technologies such as NSAPI plugins, Flash, Shockwave, ActiveX, Silverlight, NACL, or client-side Java applets.

Explanation:#

По мере развития языков программирования функции иногда устаревают из-за:

  • Расширения возможностей языка.
  • Повышения условий безопасности.
  • Изменения в соглашениях, регулирующих определенные операции.

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

Remediation:#

В следующем фрагменте кода учитывается тот факт, что в системе всегда определено свойство с именем «cmd». Если злоумышленник может управлять средой программы так, что ключевое слово «cmd» не определено, программа выдает исключение нулевого указателя при попытке вызвать метод «Trim()».

String cmd = null;
...
cmd = Environment.GetEnvironmentVariable("cmd");
cmd = cmd.Trim();

Следующий код создает строковый объект из массива байтов и значения, указывающего верхние 8 битов каждого 16-битного символа Юникода.

String name = new String(nameBytes, highByte);

В этом примере конструктор может неправильно преобразовывать байты в символы в зависимости от того, какой набор символов используется для кодирования строки, представленной nameBytes. Из-за эволюции наборов символов, используемых для кодирования строк, этот конструктор устарел и заменен конструктором, который принимает в качестве одного из своих параметров имя набора символов, используемого для кодирования байтов для преобразования.

Additional:#