Pull to refresh

PHP Дайджест № 213 (27 сентября – 11 октября 2021)

Website development *PHP *Symfony *Yii *Laravel *
Фото: Noriko YAMAMOTO.

Подборка свежих новостей и материалов из мира PHP.

Для PHP 8.2 предложили добавить тип null; опубликована уязвимость в PHP с disable_functions, которая на самом деле не уязвимость; новый сайт от сообщества — phpopendocs.com; PHP 8.1 RC 3, Xdebug 3.1 и другие релизы.

Также в выпуске порция инструментов, полезные статьи, видео.

Приятного чтения!

Этот дайджест подготовлен совместно с Insolita. Если понравился выпуск, плюсаните пост, пожалуйста.

Новости


  • PHP 8.1.0 RC 3


    Очередной релиз-кандидат доставлен по расписанию. Что нового будет в PHP 8.1 можно посмотреть в постах What's new in PHP 8.1 и PHP 8.1: before and after и на PHP.Watch.

    Свежий пост от Brent Roose про использование оператора new для дефолтных значений параметров: PHP 8.1: new in initializers.

  • «Уязвимость» в PHP для обхода disable_functions


    Исследователь опубликовал метод обхода ограничений, заданных при помощи директивы disable_functions в php.ini.

    С помощью disable_functions можно запретить использование в PHP-скриптах функции, например, можно запретить system, exec, proc_open и shell_exec для блокирования вызова внешних программ.
    // eval(), кстати, не получится запретить.

    Уязвимостью эту проблему назвать нельзя, потому что disable_functions — это не секьюрити фича и полагаться на нее ради безопасности — плохая идея.

    Напишите в комментариях, используете ли вы disable_functions?

    Цитата Никиты Попова на Reddit:
    Является ли что-то проблемой безопасности, зависит от вашей модели угрозы. Что касается проекта PHP, то наша модель угрозы — это удаленный злоумышленник. Мы считаем секьюрити проблемой случай, когда злоумышленник имеет возможность выполнить произвольный PHP-код на сервере (RCE).

    Подробнее о том, что в PHP считается проблемой безопасности, а что нет: wiki.php.net/security.

    А если интересно разобраться, то вот классный разбор того, как работает disable_functions и как устроены подобные эксплоиты. И даже как можно автоматически искать подобные проблемы.

    В тему разбор реальной RCE-уязвимости в fiveai/Cachet, популярном проекте на Laravel: Code Execution via Laravel Configuration Injection.

  • composer/composer 2.1.9


    В обновлении исправлена уязвимость на Windows (CVE-2021-41116). Пользователям Windows обязательно стоит обновиться.
  • PHPOpenDocs.com


    Экспериментальный сайт для полуофициального контента по PHP.

    Из полезного уже есть, страница для спонсорства со списком контрибьюторов сгруппированных по версиям PHP. А также раздел Internals с кучей ссылок про устройство кода PHP и как начать контрибьютить.

  • PHP Russia 2022


    Уже известны даты для конференции — 6-7 июня. Начали подготовку и прием заявок на доклады!



PHP Internals


  • [RFC] Allow null as standalone type


    Предлагается добавить возможность использовать null в декларациях типов.

    Во-первых, это недостающий кусок для полноты системы типов в PHP — есть mixed, добавили never, объединения и пересечения, не хватает юнит-типа.

    Во-вторых, такой тип позволит покрыть некоторые граничные случаи и улучшить статический анализ.

    Например, в объединениях можно использовать псевдотип false, но нельзя указать, что функция возвращает false|null, только bool|null.

  • [RFC] Deprecate partially supported callables


    Этот RFC уже на голосовании и, судя по всему, пройдет в PHP 8.2. Подробнее про предложение читайте в PHP-Дайджесте № 211.


Инструменты


  • Xdebug 3.1.0 — Обновился популярный отладчик для PHP. Добавлена поддержка PHP 8.1, много фиксов и несколько узкоспецифических фич.
  • php-runtime/runtime — Компонент Runtime отделяет логику загрузки приложения от глобального состояния, и таким образом позволяет запускать приложение в любых окружениях без изменений, например, на PHP-FPM, ReactPHP, Swoole и т.д.
    Изначально это был компонент для Symfony, но получился настолько хорош, что авторы выделили его в отдельную организацию на Гитхабе.
  • rindow/rindow-neuralnetworks — Фреймворк для обучения нейронных сетей по мотивам Python Keras. Согласно документации поддержка GPU пока доступна в экспериментальном режиме и только под Windows.
  • nunomaduro/termwind — Библиотека для форматирования вывода консольных программ с синтаксисом в стиле Tailwind CSS. PHP 8+
  • termage/termage — Еще одна похожая библиотека для форматирования вывода в консоль.
  • piko-framework/router — PHP-разработчики никогда не писали роутеры /s и вот один на базе сжатого префиксного дерева. Если верить бенчмаркам, то быстрее роутера Symfony.
  • unitpay/shamir — Реализация схемы разделения секрета Шамира (Shamir's Secret Sharing). Прислал AlexGx.
  • icanhazstring/random-issue-picker — Если хотите поучаствовать в Hacktoberfest, но не знаете с чего начать, то вот инструмент, который выберет случайную issue на гитхабе или гитлабе.


Symfony




Laravel




Статьи




Аудио/Видео





Подписывайтесь на Telegram-канал PHP Digest.

Этот дайджест подготовлен совместно с Insolita. Если понравился выпуск дайджеста, плюсаните пост, пожалуйста.

Кстати, Юля опубликовала заметку про выборку дней рождения в Postgres.


Заметили ошибку или опечатку? Сообщите в личку хабра или телеграм.

Прислать ссылку можно через форму или просто написав мне в телеграм.
Поиск ссылок по всем дайджестам
Предыдущий выпуск: PHP-Дайджест № 212

Only registered users can participate in poll. Log in, please.
Нужен ли отдельный тип null в PHP?
62.25% Да 94
37.75% Нет 57
151 users voted. 30 users abstained.
Tags:
Hubs:
Total votes 55: ↑55 and ↓0 +55
Views 11K
Comments 12
Comments Comments 12

Posts