Микро-толки — дайджест #7

На прошлой неделе провели, пожалуй, последний micro-talk в этом году. Хоть он был и небольшой, всё никак не мог собраться и зафиксировать дайджест. И вот он готов.

  1. На просторах интернета нашелся PHP Security Advent Calendar. Advent-календари — это календари для отсчета дней до Рождества. Обычно на каждый день в таком календаре бывает какой-нибудь сюрприз, например, сладкий подарок. Здесь же каждый день — новый пример php-кода с уязвимостью.
    Из интересных уязвимостей — Billion Laughs Attack. Ей подвержены скрипты, которые на вход получают xml или yaml файлы. Данные форматы поддерживают ссылки, а это может привести xml-бомбам, которые требуют огромного количества памяти для обработки.
    Кроме того, большая часть уязвимостей связана с недостаточной или некорректной обработкой пользовательского ввода или query-параметров в запросах (это и XSS, и выполнение кода на сервере, и различного вида инъекции).
  2. Опубликовано просто неимоверное количество видеозаписей фестиваля РИТ++. Все новогодние праздники можно смотреть и всё-равно не пересмотреть.
  3. Также опубликованы результаты опроса The State of Javascript 2017. Вот лишь некоторые выводы по результатам данного опроса:
    • React всё еще с нами — многие его использовали и планируют использовать дальше.
    • Популярность Vue растет — многие хотят его изучить.
    • Многие хотят повертеть GraphQL.
    • Webpack - практически стандарт де факто.
    • Yarn заменяет npm.
    • Похоже, что на бекенде превалирует Express, а вот Meteor сдает свои позиции.
  4. Казалось бы заурядный вопрос на Тостере — как проанализировать код большого проекта на PHP на наличие неиспользуемых кусков кода и файлов? Один из ответов на него содержит довольно исчерпывающий и интересный список инструментов для анализа php-кода (я его немного дополнил):
    • PHPDCD — Dead Code Detector для PHP. Он сканирует в PHP проекте все неиспользуемые функции и методы и сообщает о них.
    • PHPMD — PHP Mess Detector. Помогает найти в коде потенциальные проблемы, такие как возможные ошибки, субоптимальный код, усложненные выражения, неиспользуемые параметры, методы, свойства.
    • PHP Depend — показывает качество дизайна кода в плане расширяемости, повторного использования и сопровождения.
    • PHP CodeBrowser — инструмент для создания HTML презентации по итогам анализа PHP кода при помощи таких инструментов, как PHP CodeSniffer или PHPMD.
    • PHPCPD — PHP Copy/Paste Detector. Инструмент для поиска дублированного кода.
    • PHPLOC — инструмент для быстрого измерения размера и анализа структуры PHP проекта.
    • PHPCS — набор из двух PHP инструментов. Основной - phpcs, позволяет выявить нарушения стандартов кодирования в PHP, CSS и JS файлах. И второй - phpcbf, позволяет проводить автоматическую коррекцию стандартов. PHP CodeSniffer является важным инструментом , благодаря которому код остается чистым и последовательным.
    • PHPStan — PHP Static Analysis Tool. Еще один инструмент статического анализа PHP кода для выявления багов.
    • Phan — статический анализатор кода, который сфокусирован на поиске однозначно некорректных частей и избегает ложно-позитивных срабатываний. Нацелен на PHP 7.x+.
    • Psalm — еще один статический анализатор кода, на этот раз от Vimeo. PHP 5.4+

Предыдущий дайджест: Микро-толки — дайджест #6

Следующий дайджест: Микро-толки — дайджест #8