Laravel World

  1. Уязвимость в ImageMagick, приводящая к утечке содержимого локальных файловВ пакете ImageMagick для преобразования изображений, выявлена уязвимость CVE-2022-44268, которая может привести к утечке содержимого файлов при преобразования подготовленного атакующим PNG-изображения. Для атаки достаточно добавить к изображению параметр "profile" с необходимым файловым путём (например, "/etc/passwd") и при обработке подобного изображения, например, при изменении разрешения картинки, в выходной файл будет включено содержимое необходимого файла. Обновление с исправлением уязвимости пока не выпущено, но разработчики ImageMagick рекомендовали в качестве обходного пути для блокирования утечки создать в настройках правило, ограничивающее доступ к определённым файловым путям. В открытом доступе уже размещён скрипт для формирования изображений эксплуатирующих уязвимость.

    Уязвимость в ImageMagick, приводящая к утечке содержимого локальных файлов

    В пакете ImageMagick для преобразования изображений, выявлена уязвимость CVE-2022-44268, которая может привести к утечке содержимого файлов при преобразования подготовленного атакующим PNG-изображения. Для атаки достаточно добавить к изображению параметр "profile" с необходимым файловым путём (например, "/etc/passwd") и при обработке подобного изображения, например, при изменении разрешения картинки, в выходной файл будет включено содержимое необходимого файла. Обновление с исправлением уязвимости пока не выпущено, но разработчики ImageMagick рекомендовали в качестве обходного пути для блокирования утечки создать в настройках правило, ограничивающее доступ к определённым файловым путям. В открытом доступе уже размещён скрипт для формирования изображений эксплуатирующих уязвимость.

    https://www.opennet.ru/opennews/art.shtml?num=58610

    • ❤️49
  2. Введение в Terminable MiddlewareТерминируемые мидлвары выполняются после того, как ответ уйдет в браузер, например, операции логирования, оповещения, очищения. Давайте узнаем как и где их можно использовать.

    Введение в Terminable Middleware

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

    https://tighten.com/insights/intro-to-terminable-middleware/

    • ❤️48
  3. AI-powered error solutions for your Laravel appsПодключение OpenAI и использование его для исправления ошибок при разработке Laravel-приложения.

    AI-powered error solutions for your Laravel apps

    Подключение OpenAI и использование его для исправления ошибок при разработке Laravel-приложения.

    https://beyondco.de/blog/ai-powered-error-solutions-for-laravel

    • ❤️69
  4. Runtime Comparison для PHP приложенийОчень часто приходится сравнивать время выполнения кода с целью выбора наиболее оптимального решения, и каждый раз для этого приходилось писать обработчик с расчётом microtime, после чего заносил все результаты в какую-нибудь таблицу Excel и вручную рассчитывал минимальное, максимальное и среднее время выполнения... Для решения этой тривиальной задачи был выпущен пакет Runtime Comparison, позволяющий сравнивать время выполнения кода без лишних затрат.

    Runtime Comparison для PHP приложений

    Очень часто приходится сравнивать время выполнения кода с целью выбора наиболее оптимального решения, и каждый раз для этого приходилось писать обработчик с расчётом microtime, после чего заносил все результаты в какую-нибудь таблицу Excel и вручную рассчитывал минимальное, максимальное и среднее время выполнения... Для решения этой тривиальной задачи был выпущен пакет Runtime Comparison, позволяющий сравнивать время выполнения кода без лишних затрат.

    https://habr.com/ru/post/714802/

    • ❤️78
  5. Тейлор недоволен использованием слова Laravel другими разработчиками. Просит не называть свои продукты именами типа «Laravel X», лучше назовите «X for Laravel». И напоминает всем, что владеет торговой маркой «Laravel», в подтверждении чего выкатил отдельный раздел с описанием политики её использования —

    Тейлор недоволен использованием слова Laravel другими разработчиками. Просит не называть свои продукты именами типа «Laravel X», лучше назовите «X for Laravel». И напоминает всем, что владеет торговой маркой «Laravel», в подтверждении чего выкатил отдельный раздел с описанием политики её использования — https://laravel.com/trademark

    Судя по бурной дискуссии в Твиттере, последней каплей для него было создание какими-то ребятами сайта «Laravel Aura» c аналогичным доменом, разрабатывающими CMS на базе фреймворка. Он запретил им использовать такое название, так как это выглядит, как будто систему разрабатывает компания Тейлора.

    Многие разработчики напряглись...

    • ❤️131
  6. Релиз Size Sorter от Andrey HelldarПакет для сортировки элементов коллекций (объекты, массивы, строки, модели) по размерам (одежда, обувь, габариты предметов, размер бюстгалтеров и т.д.). Принимаемая коллекция условно разбивается на 5 групп сортировки:1. Буквенный размер одежды (XXS, XS, M, L и т.д.)2. Цифровой размер одежды и обуви (9, 10, 44-46, 48 и т.д.)3. Размер бюстгалтеров (70B, 75A, 80C и т.д.)4. Размеры предметов (40x38x19 см и т.д.)5. Все остальные значения, не входящие в первые 4 группы

    Релиз Size Sorter от Andrey Helldar

    Пакет для сортировки элементов коллекций (объекты, массивы, строки, модели) по размерам (одежда, обувь, габариты предметов, размер бюстгалтеров и т.д.). Принимаемая коллекция условно разбивается на 5 групп сортировки:
    1. Буквенный размер одежды (XXS, XS, M, L и т.д.)
    2. Цифровой размер одежды и обуви (9, 10, 44-46, 48 и т.д.)
    3. Размер бюстгалтеров (70B, 75A, 80C и т.д.)
    4. Размеры предметов (40x38x19 см и т.д.)
    5. Все остальные значения, не входящие в первые 4 группы

    https://github.com/TheDragonCode/size-sorter GitHub - TheDragonCode/size-sorter: Easily sort clothing size, height, bra size, furniture size and more

    • ❤️37
  7. Руководство по обновлению до Laravel 10Выход новой версии фреймворка запланирован на 7 февраля, но уже сейчас можно начинать подготовку к апгрейду. Мы постарались задокументировать все возможные критические изменения. Поскольку некоторые из них находятся в малоизвестных частях фреймворка, только часть этих изменений может повлиять на ваше приложение. Приблизительное время обновления: 10 минут.

    Руководство по обновлению до Laravel 10

    Выход новой версии фреймворка запланирован на 7 февраля, но уже сейчас можно начинать подготовку к апгрейду. Мы постарались задокументировать все возможные критические изменения. Поскольку некоторые из них находятся в малоизвестных частях фреймворка, только часть этих изменений может повлиять на ваше приложение. Приблизительное время обновления: 10 минут.

    https://laravel.demiart.ru/upgrade-guide-to-laravel-10/

    • ❤️59
  8. Laravel 9.49: Новые методы в HTTP-клиентеОпределяет, является ли статус ответа уровня 4xx$response->clientError();

    Laravel 9.49: Новые методы в HTTP-клиенте

    Определяет, является ли статус ответа уровня 4xx
    $response->clientError();
    
    
    Определяет, является ли статус ответа уровня 5xx
    $response->serverError();
    
    
    Выбросить исключение, если статус ответа имеет определенный код
    $response->throwIfStatus(403);
    
    
    Выбросить исключение, если статус ответа не имеет определенный код
    $response->throwUnlessStatus(200);
    
    
    https://laravel.com/docs/9.x/http-client#error-handling

    • ❤️58
  9. Laravel Breeze vs Laravel JetstreamРассмотрены пакеты аутентификации Laravel Breeze и Jetstream. Их различия и сходства, как начать с ними работать и варианты их использования.

    Laravel Breeze vs Laravel Jetstream

    Рассмотрены пакеты аутентификации Laravel Breeze и Jetstream. Их различия и сходства, как начать с ними работать и варианты их использования.

    https://www.twilio.com/blog/laravel-breeze-vs-laravel-jetstream Laravel Breeze vs Laravel Jetstream

    • ❤️29
  10. Настраиваем поисковый движок Sphinx в Laravel

    Настраиваем поисковый движок Sphinx в Laravel
    https://medium.com/@devknight216/how-to-setup-sphinx-search-engine-with-your-laravel-app-7ace9189762b How to setup Sphinx search engine with your Laravel App

    • ❤️53
  11. Laravel AaaS — Actions as a ServiceWendell Adriel придумал новый паттерн с четырьмя принципами.

    Laravel AaaS — Actions as a Service

    Wendell Adriel придумал новый паттерн с четырьмя принципами.

    https://wendelladriel.com/blog/laravel-aaas-actions-as-a-service/ Laravel AaaS - Actions as a Service

    • ❤️48
  12. Дайджест PHP – Январь 2023

    Дайджест PHP – Январь 2023
    https://blog.jetbrains.com/phpstorm/2023/01/php-annotated-january-2023/ PHP Annotated – January 2023 | The PhpStorm Blog

    • ❤️22
  13. Зачем и как использовать Объекты передачи данных в LaravelData Transfer Object (Объект передачи данных) — паттерн программирования, который, при правильном использовании, может улучшить качество код и удобство его дальнейшего сопровождения. В этой статье мы узнаем, почему нужно использовать DTO и как это сделать в Laravel.

    Зачем и как использовать Объекты передачи данных в Laravel

    Data Transfer Object (Объект передачи данных) — паттерн программирования, который, при правильном использовании, может улучшить качество код и удобство его дальнейшего сопровождения. В этой статье мы узнаем, почему нужно использовать DTO и как это сделать в Laravel.

    https://laravel.demiart.ru/data-transfer-objects-in-laravel-why-and-how/

    • ❤️71
  14. В Laravel 9.48 добавлены два новых метода incrementEach() и decrementEach() в Конструктор запросов. Они позволяют увеличивать/уменьшать несколько полей за одну операцию.

    В Laravel 9.48 добавлены два новых метода incrementEach() и decrementEach() в Конструктор запросов. Они позволяют увеличивать/уменьшать несколько полей за одну операцию.

    • ❤️51
  15. Простая альтернатива мягкому удалению: deleted_record_insert

    Простая альтернатива мягкому удалению: deleted_record_insert
    https://brandur.org/fragments/deleted-record-insert

    На основе этого подхода Spatie выпустили пакет «Laravel deleted models», который будет хранить удаленные записи в отдельной таблице.

    • ❤️45