﻿# PVS\-Studio 7\.39: OWASP Top Ten 2021, улучшения в плагине для Visual Studio Code, расширение поддержки MISRA и не только

Вышел новый релиз PVS\-Studio — 7\.39\. Обо всех нововведениях в нашем продукте рассказываем здесь\.

![1300_Press_Release_7_39_ru/image1.png](https://import.viva64.com/docx/blog/1300_Press_Release_7_39_ru/image1.png)

## Покрытие OWASP Top Ten 2021 Java анализатором

В новой версии PVS\-Studio Java анализатор пополнился диагностическими правилами из классификации OWASP Top Ten 2021\. На момент релиза 7\.39 анализатор для Java покрывает 9 из 10 её категорий\. Это является частью большой работы по развитию Java анализатора как SAST\-решения\.

Ознакомиться с тем, как диагностические правила C/C\+\+, C\# и Java анализаторов соотносятся к категориями OWASP Top Ten 2021, можно [здесь](https://pvs-studio.ru/ru/pvs-studio/sast/owasptopten/)\.

## Запуск анализа в режиме мониторинга компиляции в плагине для Visual Studio Code

В [плагине PVS\-Studio для среды разработки Visual Studio Code](https://pvs-studio.ru/ru/docs/manual/6646/) добавлена возможность запуска анализа в режиме мониторинга компиляции на операционной системе Windows\. 

Система мониторинга компиляции \(PVS\-Studio Compiler Monitoring, CLMonitoring\) предназначена для "бесшовной" интеграции статического анализа PVS\-Studio в любую сборочную систему на ОС семейства Windows\. Эта сборочная система должна использовать для компиляции файлов один из препроцессоров, поддерживаемых command\-line анализатором PVS\-Studio\.exe \(Visual C\+\+, GCC, Clang, Keil MDK ARM Compiler 5/6, IAR C/C\+\+ Compiler for ARM\)\.

Подробнее про режим мониторинга компиляции в плагине для VS Code можно прочитать [в нашей документации](https://pvs-studio.ru/ru/docs/manual/0031/#vscode)\.

В будущих релизах мы планируем также поддержать в Visual Studio Code трассировку сборки на операционных системах семейства Linux\.

## Поддержка генерации отчёта MISRA Compliance для новых версий стандарта MISRA

[MISRA Compliance](https://pvs-studio.ru/ru/docs/manual/6966/#misra_compliance) — это стандарт, который позволяет понять, соответствует ли проект стандарту MISRA C и/или MISRA C\+\+ с учётом всех отклонений и рекатегоризаций\. И в новом релизе PVS\-Studio была добавлена поддержка генерации отчёта MISRA Compliance с учётом новых поддерживаемых версий MISRA\.

Чтобы сгенерировать отчёт, нужно воспользоваться утилитой `PlogConverter.exe` \(Windows\) или `plog-converter` \(Linux, macOS\)\. Сам отчёт представляет собой HTML\-страницу, которая удобно подходит для печати\. Вот пример отчёта, когда проект соответствует MISRA C 2012:

![1300_Press_Release_7_39_ru/image2.png](https://import.viva64.com/docx/blog/1300_Press_Release_7_39_ru/image2.png)

Подробнее можно ознакомиться в [документации](https://pvs-studio.ru/ru/docs/manual/6966/#IDF59D098F6A)\.

Также в рамках C/C\+\+ анализатора продолжаются работы по покрытию стандарта MISRA C 2023\. Завершить их планируется к концу этого года\. Ознакомиться с тем, как диагностические правила PVS\-Studio соотносятся с правилами стандартов MISRA С и MISRA C\+\+, можно [здесь](https://pvs-studio.ru/ru/pvs-studio/sast/misra/)\.

## Поддержан анализ проектов на основе сборочной системы MSBuild, использующих формат решений SLNF

Начиная с этой версии, анализатор PVS\-Studio для C\# может анализировать не только полные решения в формате `.sln`, но и их облегчённые версии — файлы с расширением `.slnf`\. 

[Solution Filter](https://learn.microsoft.com/en-us/visualstudio/ide/filtered-solutions?view=vs-2022) файлы \(`.slnf`\) позволяют работать только с выбранными проектами внутри большого решения, что ускоряет сборку и упрощает работу с частями кода\.

## Механизм перезаписи более приоритетных настроек для файлов конфигурации диагностик \.pvsconfig

`.pvsconfig` — это файл конфигурации, служащий для отображения и фильтрации сообщений анализатора\. Также в нём можно задать дополнительные настройки анализа\.

В этом релизе добавлена возможность перезаписи настроек в файлах `.pvsconfig` с более высоким приоритетом из файлов `.pvsconfig` с менее высоким приоритетом\. 

Подробнее об этом можно прочитать [в нашей документации](https://pvs-studio.ru/ru/docs/manual/6630/#override)\.

## Breaking changes

Данные изменения ломают обратную совместимость с предыдущими версиями анализатора\. В связи с этим вам может потребоваться изменить способ использования анализатора\.

* В Java анализаторе изменены сообщения некоторых диагностических правил\. Возможно появление в отчёте анализатора ранее подавленных сообщений\.

## Новые диагностические правила

### C и C\+\+:

* [V2652](https://pvs-studio.ru/ru/docs/warnings/v2652/)\. MISRA\. Argument of an integer constant macro should have an appropriate form\.
* [V2653](https://pvs-studio.ru/ru/docs/warnings/v2653/)\. MISRA\. The small integer variants of the minimum\-width integer constant macros should not be used\.
* [V2654](https://pvs-studio.ru/ru/docs/warnings/v2654/)\. MISRA\. Initializer list should not contain persistent side effects\.
* [V2655](https://pvs-studio.ru/ru/docs/warnings/v2655/)\. MISRA\. The right operand of a logical '&&' or '\|\|' operator should not contain persistent side effects\.
* [V2656](https://pvs-studio.ru/ru/docs/warnings/v2656/)\. MISRA\. The Standard Library function memcmp should not be used to compare null terminated strings\.
* [V2657](https://pvs-studio.ru/ru/docs/warnings/v2657/)\. MISRA\. Obsolescent language features should not be used\.
* [V2658](https://pvs-studio.ru/ru/docs/warnings/v2658/)\. MISRA\. Dead code should not be used in a project\.
* [V2659](https://pvs-studio.ru/ru/docs/warnings/v2659/)\. MISRA\. Switch statements should be well\-formed\.
* [V2660](https://pvs-studio.ru/ru/docs/warnings/v2660/)\. MISRA\. A function declared with a \_Noreturn specifier should not return to its caller\.
* [V2661](https://pvs-studio.ru/ru/docs/warnings/v2661/)\. MISRA\. MISRA\. A 'for' loop should be well\-formed\.
* [V2662](https://pvs-studio.ru/ru/docs/warnings/v2662/)\. MISRA\. Any value passed to a function from <ctype\.h\> should be representable as an unsigned character or be the value EOF\.

### C\#:

* [V3226](https://pvs-studio.ru/ru/docs/warnings/v3226/)\. Potential resource leak\. The disposing method will not be called if an exception occurs in the 'try' block\. Consider calling it in the 'finally' block\.
* [V3227](https://pvs-studio.ru/ru/docs/warnings/v3227/)\. The precedence of the arithmetic operator is higher than that of the shift operator\. Consider using parentheses in the expression\.
* [V5631](https://pvs-studio.ru/ru/docs/warnings/v5631/)\. OWASP\. Use of externally\-controlled format string\. Potentially tainted data is used as a format string\.

### Java:

* [V5335](https://pvs-studio.ru/ru/docs/warnings/v5335/)\. OWASP\. Potential XXE vulnerability\. Insecure XML parser is used to process potentially tainted data\.
* [V5336](https://pvs-studio.ru/ru/docs/warnings/v5336/)\. OWASP\. Potential XEE vulnerability\. Insecure XML parser is used to process potentially tainted data\.

## Статьи

### Для тех, кто пишет на C/C\+\+:

* [CMake: герой, который споткнулся о 12 багов](https://pvs-studio.ru/ru/blog/posts/cpp/1277/);
* [Что делать, если ваш слон думает, что он баг?](https://pvs-studio.ru/ru/blog/posts/cpp/1280/);
* [Боремся с хедкрабами в исходниках Source SDK](https://pvs-studio.ru/ru/blog/posts/cpp/1281/);
* [Коробка багов \(эмулируется\)](https://pvs-studio.ru/ru/blog/posts/cpp/1289/)\.

### Для тех, кто пишет на C\#:

* [Копаемся в открытом исходном коде Unity VR игр\. Часть 1: RocketMan](https://pvs-studio.ru/ru/blog/posts/csharp/1278/);
* [Копаемся в открытом исходном коде Unity VR игр\. Часть 2: NorthStar](https://pvs-studio.ru/ru/blog/posts/csharp/1279/);
* [Вопросов нет? Или почему отсутствие '?' может навредить проекту](https://pvs-studio.ru/ru/blog/posts/csharp/1288/)\.

### Для тех, кто пишет на Java:

* [Безопасность приложений: инструменты и практики для Java\-разработчиков](https://pvs-studio.ru/ru/blog/posts/java/1275/);
* [Как мы Best Practices в Java анализатор внедряли](https://pvs-studio.ru/ru/blog/posts/java/1282/);
* [Нововведения Java 25](https://pvs-studio.ru/ru/blog/posts/java/1284/);
* [Баги носят данные\. Проверка Apache NiFi](https://pvs-studio.ru/ru/blog/posts/java/1285/);
* [OWASP Top Ten 2021 через простые примеры на Java\. И немного про SAST](https://pvs-studio.ru/ru/blog/posts/java/1287/);
* [Цепочка гаджетов в Java и как небезопасная десериализация приводит к RCE?](https://pvs-studio.ru/ru/blog/posts/java/1296/)

### Статьи общей направленности:

* [Как получить и использовать бесплатную лицензию PVS\-Studio на практике\. Часть 1: подготовка и начало работы](https://pvs-studio.ru/ru/blog/posts/1286/);
* [Как получить и использовать бесплатную лицензию PVS\-Studio на практике\. Часть 2: первый запуск и настройка](https://pvs-studio.ru/ru/blog/posts/1292/);
* [Как получить и использовать бесплатную лицензию PVS\-Studio на практике\. Часть 3: работа с отчётом и разбор срабатываний](https://pvs-studio.ru/ru/blog/posts/1294/);
* [Команда PVS\-Studio просит присылать примеры ошибок, связанные с использованием вайб\-кодинга](https://pvs-studio.ru/ru/blog/posts/1290/);
* [Статический анализ в open source проектах с помощью PVS\-Studio](https://pvs-studio.ru/ru/blog/posts/1283/);
* [Управление результатами статического анализа](https://pvs-studio.ru/ru/blog/posts/1293/);
* [Компетенция: теория разработки безопасного ПО \(РБПО\)](https://pvs-studio.ru/ru/blog/posts/1291/)\.

## Вебинары:

![1300_Press_Release_7_39_ru/image3.png](https://import.viva64.com/docx/blog/1300_Press_Release_7_39_ru/image3.png)

### Вокруг РБПО за 25 вебинаров: ГОСТ Р 56939\-2024

Новый ГОСТ Р 56939\-2024 описывает 25 процессов для создания безопасного программного обеспечения \(РБПО\)\. Каждый из них можно представить в виде списка действий, направленных на создание более зрелого цикла разработки ПО в компании\.

Учебный Центр "МАСКОМ" и PVS\-Studio организуют [цикл вебинаров](https://pvs-studio.ru/ru/webinar/rbpo/), посвящённых разбору этих 25 процессов\.


> \*\*Примечание\\\.\*\* В 2026 году эти вебинары легли в основу подборки материалов "\[Разработка безопасного программного обеспечения \\\(РБПО\\\) по ГОСТ Р 56939—2024\]\(https://pvs\-studio\.ru/ru/webinar/rbpo/content/\)"\\\.

### Оптимизация игр

<https://vk.com/video_ext.php?oid=-11805870&id=456239617&hash=cd373731d4dcd7ac>

На вебинаре "Оптимизация игр" вместе с экспертами из игровых студий Forgotten Empires и Playrix мы обсудили практические советы по улучшению проектов\. Поговорили о тонкостях работы с памятью, кастомных аллокаторах, а также способах ускорить запуск мобильных игр\.

Посмотреть можно по [ссылке](https://pvs-studio.ru/ru/blog/video/11468/)\.

## Подкасты:

### Процесс сертификации в системе ФСТЭК России — взгляд со стороны участников \| linkmeup

<https://vk.com/video_ext.php?oid=-11805870&id=456239605&hash=878a4b0ec9232acd>

Сегодня многие российские разработчики задаются вопросом, как получить сертификат ФСТЭК\. Вместе с Никитой Молчаном из лаборатории Атомзащитаинформ, Даниилом Скалацким из Angie Software и Андреем Карповым из PVS\-Studio выяснили, в чём разница между лицензированием, аттестацией и сертификацией\. Зачем, кому и для чего это нужно, как проводится экспертиза и, главное, что ждать при подаче документов на свою разработку во ФСТЭК\.

Посмотреть можно по [ссылке](https://pvs-studio.ru/ru/blog/video/11434/)\.

### Разбаговка\. Пилотный выпуск

<https://vk.com/video_ext.php?oid=-11805870&id=456239601&hash=dc1bab29955def79>

Вышел пилотный выпуск подкаста "Разбаговка" от PVS\-Studio\. Знакомим вас с ведущими и рассказываем о том, как работает синергия маркетинга и DevRel\.

Посмотреть можно по [ссылке](https://pvs-studio.ru/ru/blog/video/11429/)\.

### Разбаговка \#2\. Фёдор Сазонов: зачем нужна новая IDE на IntelliJ Platform?

<https://vk.com/video_ext.php?oid=-11805870&id=456239621&hash=c5f9c013960fbb38>

В новом выпуске подкаста поговорили с CEO OpenIDE, Фёдором Сазоновым\. Обсудили язык Java, устройство современных инструментов разработки и то, что на самом деле важно, когда создаёшь среду для других программистов\.

Посмотреть можно по [ссылке](https://pvs-studio.ru/ru/blog/video/11481/)\.

## Митапы

### Анонс митапа "Карты, деньги, JVM"

![1300_Press_Release_7_39_ru/image4.png](https://import.viva64.com/docx/blog/1300_Press_Release_7_39_ru/image4.png)

На митапе обсудим внутренности JVM и компилятора\. Разберём, как JVM оптимизирует динамические вызовы, чем MethodHandle лучше рефлексии и как компилятор обрабатывает код — от фронтенда до практического применения\. Вы услышите два доклада от разработчиков Java анализатора PVS\-Studio\.

С подробностями можно [ознакомиться по ссылке](https://pvs-studio.timepad.ru/event/3582056/)\.


> Хотите проверить свой проект с помощью PVS\\\-Studio? Начните \[с этой страницы\]\(https://pvs\-studio\.ru/ru/pvs\-studio/try\-free/\)\\\.

Если вы хотите получать новости о новых релизах, можете [подписаться на рассылку](https://pvs-studio.ru/ru/subscribe/) от команды PVS\-Studio\.