Очередная версия статического анализатора PVS-Studio интересна следующими нововведениями: анализ непроверенных данных (tainted data analysis), поддержка .NET 5, утилита Blame Notifier научилась сортировать предупреждения по датам коммитов.
Хотим обратить внимание, что сайт продукта PVS-Studio сменил свой адрес и дизайн. Теперь он располагается здесь: https://pvs-studio.com. Если вы заметите на сайте какие-то ошибки, то мы будем рады, если вы сообщите нам про них.
Также хотим отметить, что теперь анализатор PVS-Studio включен в реестр отечественного ПО.
В PVS-Studio для C++ уже давно имеются механизмы для поиска фрагментов кода, где используются непроверенные исходные данные. Про это ещё в 2018 году Сергей Васильев написал заметку "Стреляем в ногу, обрабатывая входные данные". Сейчас Сергей является руководителем C# направления, и он применил свои знания и опыт, чтобы развить tainted data analysis в ядре C# анализатора.
В C# анализаторе PVS-Studio появилось первое диагностическое правило из стандарта OWASP ASVS, ищущее в коде ошибки, связанные с непроверенными данными (tainted data). Это диагностическое правило V5608 для поиска потенциальных SQL инъекций. Данный класс ошибок занимает важное место в рейтинге OWASP Top 10, и в будущих релизах PVS-Studio мы будем добавлять диагностические правила для поиска множества других видов потенциальных tainted data уязвимостей.
Теперь PVS-Studio полноценно поддерживает анализ проектов, ориентированных на .NET 5 и использующих возможности C# 9. Кроме того, C# анализатор под Linux и macOS также использует платформу .NET 5 для своей работы. Таким образом, на этих системах потребуется наличие установленного пакета .NET 5 SDK. Версия анализатора под Windows, как и раньше, использует .NET Framework 4.7.2.
Более подробно об этом можно прочитать в статье "Свершилось! PVS-Studio поддерживает анализ проектов под .NET 5".
Утилита Blame Notifier для автоматической рассылки отчётов о найденных анализатором предупреждениях на основе blame информации из системы контроля версий теперь может сортировать предупреждения по номерам и датам коммитов. Это позволяет видеть предупреждения на код, появившиеся только за определённый день.
Раньше аналогичная функциональность была доступна только при использовании PVS-Studio в связке с SonarQube. Не все наши пользователи хотят использовать SonarQube, но им нужна возможность сортировки предупреждений по датам. Теперь стало больше вариантов и сценариев. Подробнее: Новые возможности PVS-Studio по оповещению разработчиков о найденных ошибках.
Примечание. Продолжая тему отчётов, следует отметить новую стороннюю утилиту. Теперь автоматическую публикацию отчётов можно делать не только с помощью Blame Notifier. Наш пользователь написал легковесный аналог (не требующий .NET для работы) данной утилиты, который вы можете попробовать на GitHub (Blame Notifier Script).