Материалы по тегу: php

26.11.2020 [18:56], Андрей Галадей

В PHP 8.0 улучшена производительность и добавлено много новых функций

Сегодня состоялся релиз PHP 8.0, который придёт на смену прошлогоднему PHP 7.4. И в нём есть масса нововведений, которые должны улучшить работу системы. Помимо поддержки JIT-компилятора для ускорения работы кода появились и другие оптимизации.

Поддержка JSON теперь считается основной частью языка, которая всегда доступна по умолчанию. Ранее она была представлена дополнительным модулем, который нужно было подключать.

В версии 8 поддерживаются именованные аргументы, что позволяет указывать их имена, а не порядок. Появилась поддержка атрибутов для структурированных метаданных по классам, свойствам, функциям, методам, параметрам, константам. В других языках это нередко называется декораторами или аннотациями.

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

Добавлена функция str_contains, которая позволяет проверить содержится ли строка в другой строке. Ранее для этого применялась конструкция strpos. Добавлены функции str_starts_with и str_ends_with для проверки начала и конца строки. Оператор Nullsafe позволяет проверять последовательность элементов на null, а выражение Match, которое похоже на оператор Switch, позволяет сохранить результат в переменной или возвратить его.

Также есть другие изменения. Подробнее о них можно прочитать, к примеру, здесь

Постоянный URL: http://servernews.ru/1026383
12.01.2011 [14:31], Валерий Косихин

Ошибка в HPH открывает возможность для DOS-атаки

В некоторых версиях скриптового языка PHP выявлена ошибка, которая приводит к аварийному завершению работы сервера. Сбой происходит в том случае, когда ПО получает задание конвертировать большое число с плавающей точкой – либо в процессе обычной работы, либо в результате атаки злоумышленника.

Роковым числом является 2.2250738585072011e-308. При его переводе из строкового в численный формат процесс интерпретатора входит в бесконечный цикл. По меньшей мере один пользователь уже подтвердил на практике, что сервер с PHP можно намеренно вывести из игры, отправив число с помощью функции GET данного языка.

 

 

Уязвимости подвержены лишь 32-битные PHP-процессы, запущенные на компьютерах с архитектурой x86 под управлением ОС Windows и Linux. Разрядность самой операционной системы роли не играет. Происхождение ошибки раскрыл Энди Гутманс (Andi Gutmans), один из создателей PHP и генеральный директор Zend Technologies – поставщика инструментов для разработки ПО на этом языке. Оказалось, что некоторые из старых процессоров Intel содержали “баг” в модуле обработки вещественных чисел, и с тех пор интерпретатор PHP работает таким образом, как если бы аппаратная ошибка до сих пор существовала.

По мнению Гутманса, большинство серверов с PHP, работающих под большой нагрузкой, застрахованы от сбоя благодаря использованию 64-битного ПО. Администраторам других систем настоятельно рекомендуется установить обновление для PHP 5.3.5 и 5.2.17 с сайта PHP.net. Альтернативное решение – перекомпилировать программы с использованием дополнительных параметров.

Источники:

Постоянный URL: http://servernews.ru/594051
Система Orphus