На прошлой неделе провели, пожалуй, последний micro-talk в этом году. Хоть он был и небольшой, всё никак не мог собраться и зафиксировать дайджест. И вот он готов.
- На просторах интернета нашелся PHP Security Advent Calendar. Advent-календари — это календари для отсчета дней до Рождества. Обычно на каждый день в таком календаре бывает какой-нибудь сюрприз, например, сладкий подарок. Здесь же каждый день — новый пример php-кода с уязвимостью.
Из интересных уязвимостей — Billion Laughs Attack. Ей подвержены скрипты, которые на вход получают xml или yaml файлы. Данные форматы поддерживают ссылки, а это может привести xml-бомбам, которые требуют огромного количества памяти для обработки.
Кроме того, большая часть уязвимостей связана с недостаточной или некорректной обработкой пользовательского ввода или query-параметров в запросах (это и XSS, и выполнение кода на сервере, и различного вида инъекции). - Опубликовано просто неимоверное количество видеозаписей фестиваля РИТ++. Все новогодние праздники можно смотреть и всё-равно не пересмотреть.
- Также опубликованы результаты опроса The State of Javascript 2017. Вот лишь некоторые выводы по результатам данного опроса:
- React всё еще с нами — многие его использовали и планируют использовать дальше.
- Популярность Vue растет — многие хотят его изучить.
- Многие хотят повертеть GraphQL.
- Webpack - практически стандарт де факто.
- Yarn заменяет npm.
- Похоже, что на бекенде превалирует Express, а вот Meteor сдает свои позиции.
- Казалось бы заурядный вопрос на Тостере — как проанализировать код большого проекта на 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+
- PhpMetrics — клёвый визуальный инструмент для отслеживания качества качества кода
Предыдущий дайджест: Микро-толки — дайджест #6
Следующий дайджест: Микро-толки — дайджест #8