PVS-Studio: поиск ошибок в С/С++, С# и Java – Telegram
PVS-Studio: поиск ошибок в С/С++, С# и Java
1.73K subscribers
1.47K photos
65 videos
2 files
1.44K links
Статический анализатор на страже качества, защищённости (SAST) и безопасности кода.

Сайт: https://pvs-studio.ru/ru/
Download Telegram
Друзья, уже через 7 дней состоится наш совместный вебинар с Дмитрием Свиридкиным (27 февраля 14:00)

А пока предлагаем вам задать вопросы Дмитрию про книгу "Путеводитель C++ программиста по неопределённому поведению". Ответ на них получите на вебинаре. Кстати, вот ссылка для регистрации.

Ждем! 😉

#вебинар #cpp
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Вышел новый релиз PVS-Studio — 7.35. Поддержка стандарта MISRA C, плагин для Qt Creator 15.X, анализ модифицированных файлов в Visual Studio, и это далеко не всё!

Больше подробностей в этой заметке🔗

#PVS_Studio #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6
PVS-Studio: поиск ошибок в С/С++, С# и Java
#Задача_PVS #programming #java
Ответ на задачу: дефект заключается в том, что переменная делится на саму себя. Вследствие чего проверка на кратность будет проходить всегда, и, в случае некорректных входных данных (windowLenMs, numBuckets), исключение так и не будет выброшено.
Please open Telegram to view this post
VIEW IN TELEGRAM
Пришло время поломать голову и угадать, о каком термине идет речь 🧐
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Во второй части нашей трилогии об игровом движке Nau Engine мы обсудим важные аспекты оптимизации и повышения производительности. Наша цель — выявить проблемы, которые могут повлиять на эффективность и стабильность игр, созданных с использованием Nau Engine.

Переходите по ссылке 🔗

#статья #cpp #gamedev
Please open Telegram to view this post
VIEW IN TELEGRAM
3🔥2
22 февраля — День рождения Томаса Евгения Курца

Напишите в комментариях еще интересных фактов 😉

#праздник
❤‍🔥6
Действительно ли искусственный интеллект знает всё? Может ли он со 100% точностью ответить на вопросы о вас или вашей работе? В этой статье мы проверим, насколько ChatGPT осведомлён о компании PVS-Studio и об анализаторе.

Переходите по ссылке 🔗

#статья #PVS_Studio
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🤔2😁1
Поиск потенциальных уязвимостей в коде, часть 2: практика

В прошлый раз мы ознакомились с общими подходами в поиске уязвимостей безопасности в приложениях. В этот раз спустимся ближе к земле и посмотрим на то, как мы реализовали эти механизмы в нашем статическом анализаторе для Java.

Переходите по ссылке 🔗

#java #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
👍32
Друзья, у нас начинается сезон конференций и митапов. Скоро мы анонсируем, где увидимся с вами в марте. А пока расскажем, куда мы отправляемся уже через два дня...

Едем мы в Йошкар-Олу на iSpring Tech Backend meetup! На этом митапе наш Developer Advocate расскажет про безопасную разработку, качественный код, технологии статического анализа и др. Кстати, доклад можно послушать онлайн. Все подробности по ссылке 🔗

P.s. если вдруг кто-то из вас там будет, дайте знать в комментариях 😉
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👍1
🚀 Рассказываем про новые диагностики

Java отдел на связи! Мы продолжаем реализовывать диагностики, направленные на поиск потенциальных уязвимостей. В этот раз поговорим про XPath и новую диагностику V5312. Пример в студию:
@RestController("/xpathDemo")
public class XPathTestController {
private Document doc;

@GetMapping
public ResponseEntity<String> getXMLData(
@RequestParam("username")
String username,
@RequestParam("password")
String password
) {
var xpath = XPathFactory.newInstance()
.newXPath();

String query = "//users/user[" +
"username/text() = '%s' and" +
"passwordHash/text() = '%s']" +
"/data/text()";

query = String.format(query,
username,
password);

String result = "";
try {
result = xpath.evaluate(query, doc);
// ....
} catch (XPathExpressionException e) {
// ....
}
//....

return new ResponseEntity<>(result, HttpStatus.OK);
}
}


Здесь запрос на языке XPath формируется на основе данных, пришедших извне. В случае, если параметр username будет следующим - john' or ''=', то нам вернутся данные по пользователю john независимо от того, правильный нам пришёл пароль или нет.

Из этого следует, что всегда необходимо проверять, что за данные вы используете, особенно если они пришли снаружи.
И наша диагностика V5312 как раз выявляет случаи, когда для формирования XPath запроса используются непроверенные данные извне. Доступна эта диагностика с релиза 7.35.

#java #PVS_Studio
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
PVS-Studio: поиск ошибок в С/С++, С# и Java
#Задача_PVS #programming #csharp
Ответ на задачу: разработчик использовал оператор '?.', подразумевая, что поле stack_instr может быть null. Скорее всего, ожидалось, что выражение stack_instr?.Count < length при stack_instr равным null вернёт true, и произойдёт выход из метода, но нет — результатом будет false.
Из этого следует, что при обращении к stack_instr!.Pop() может произойти разыменование null ссылки (несмотря на то, что вызов размечен с помощью '!').
Please open Telegram to view this post
VIEW IN TELEGRAM
Новые интересные диагностики в PVS-Studio 7.35 🎉

С релизом PVS-Studio 7.35 в анализаторе появилось много новых диагностических правил. Вас ждёт: много MISRA для C, новые Unity-диагностики для C# и покрытие OWASP Top 10 для Java и многое другое.

Подробности вы сможете узнать в этой заметке 🔗

#cтатья #release #cpp #java #csharp
❤‍🔥3
🔮Бинарный код льется из Рога Судьбы, чтобы рассказать вам, что ждет вас в этом месяце. И этот месяц озаряет PVS-STUDIO!

Возможно, вам стоит взять руководство над новым проектом и пересмотреть архитектуру вашего кода. Возьмите судьбу вашего кода в свои руки, и вперед навстречу невероятному багфиксу вместе со статическим анализатором!

А по этой ссылке вы можете воспользоваться PVS-Studio бесплатно в течение 30 дней – https://pvs-studio.ru/pvsstudio_tg
🔥6