Vimeo опублікувала статичний аналізатор Psalm 3.12, який виявляє та виправляє помилки в коді мовою PHP

Vimeo опублікував статичний аналізатор Psalm 3.12, який виявляє та виправляє помилки в php-коді

Компанія Vimeo опублікувала статичний аналізатор Psalm 3.12, який дозволяє виявляти і виправляти помилки в php-коді. Система підходить для виявлення проблем як в застарілому коді, так і в коді, що використовує сучасні можливості, що з'явилися в нових гілках PHP. Код проекту пишеться на PHP і поширюється під ліцензією MIT.

Псалом виділяє більшість проблем, пов'язаних з неправильним вживанням типів, а також різноманітні поширені помилки. Наприклад, підтримується відображення попереджень про змішування змінних з різними типами в виразі, неправильні логічні перевірки (такі як "if ($a && $a) {}", "if ($a && !$a) {}" і "if ($a) {} elseif ($a) {}"), неповна ініціалізація властивостей об'єкта. Аналізатор виконаний в багатопотоковому режимі. Можливе виконання інкрементних перевірок, при яких аналізуються тільки файли, які змінилися з моменту останнього сканування.

Додатково передбачені засоби захищеного програмування, що дозволяють використовувати анотації в форматі docblock ("/** @var Type */") для надання інформації про типи змінних, значеннях повернення, параметрах функцій, властивостях об'єктів. Ви також можете визначити шаблони використання типів і використовувати вирази assert.

Для автоматизації усунення знайдених проблем передбачена утиліта Psalter, яка підтримує плагіни і дозволяє усувати типові проблеми в коді, додавати анотації про типи, виконувати такі маніпуляції, як переміщення класів з одного простору імен в інший, переміщення методів між класами, перейменування класів і методів.

У новому релізі Псалма реалізована опція «--taint-analysis», яка дозволяє простежити взаємозв'язок між вхідними параметрами, отриманими від користувача (наприклад, $_GET['name']) і їх використанням в місцях, що вимагають втечі символів (наприклад, відлуння «<h1>$name</h1>»), в тому числі за допомогою ланцюжків відстеження проміжних призначень і викликів функцій. В якості джерел потенційно небезпечних даних розглядається використання асоціативних масивів $_GET, $_POST і $_COOKIE, але також можна визначити власні джерела. З дій, які вимагають відстеження втечі, вважаються операції виведення, які призводять до генерації HTML-контенту, додавання ЗАГОЛОВКІВ HTTP або виконання SQL-запитів.

Перевірка застосовується при використанні таких функцій, як echo, exec, include і header. При аналізі необхідності втечі враховуються такі типи даних, як текст, рядки з кодом SQL, HTML і Shell, рядки з параметрами аутентифікації. Запропонований режим дозволяє виявити вразливості в коді, які призводять до міжсайтових сценаріїв (XSS) або підміни SQL.

Додатково можна відзначити початок альфа-тестування нової гілки PHP 8.0. Реліз запланований на 26 листопада. У новій галузі очікуються такі нововведення, як:


Опубліковано: 2 липня 2020


Вибрати програмне забезпечення


Напишіть запит на програмне забезпечення нам у Viber
+380503703627


Контакти Ай Ті Про

info@itpro.ua
Телефон: +38 (044) 257-24-44