Vimeo опубликовала статический анализатор Psalm 3.12, выявляющий и исправляющий ошибки в коде на языке PHP

Vimeo опубликовала статический анализатор Psalm 3.12, выявляющий и исправляющий ошибки в коде на языке PHP

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

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

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

Для автоматизации устранения найденных проблем предоставляется утилита Psalter, которая поддерживает плагины и позволяет устранять типовые проблемы в коде, добавлять аннотации о типах, а также выполнять такие манипуляции, как перемещение классов из одного пространства имён в другое, перемещение методов между классами, переименовывание классов и методов.

В новом выпуске Psalm реализована опция "--taint-analysis", позволяющая проследить связь между полученными от пользователя входными параметрами (например, $_GET['name']) и их использованием в местах, требующих экранирования символов (например, echo "<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