tgoop.com/phpproglib/5302
Last Update:
Опасности, связанные с unserialize в PHP, и как оставаться в безопасности
PHP-разработчики должны быть осторожны при использовании функции unserialize()
, поскольку она может стать уязвимостью, если применять её без соответствующих мер безопасности. Эта функция преобразует сериализованную строку обратно в переменную PHP, что удобно, но при работе с неподтверждёнными данными может привести к серьёзным последствиям.
Опасности unserialize() при работе с ненадёжными данными
Одной из главных угроз является PHP Object Injection (POI). Злоумышленники могут передавать специально сформированные сериализованные объекты, что приведёт к выполнению нежелательных команд, утечке данных или даже удалению файлов. Например, если приложение десериализует пользовательские настройки без проверки входных данных, хакер может внедрить вредоносный объект и выполнить код на сервере.
Последствия атак через PHP Object Injection
Использование уязвимой десериализации может привести к:
🔸удалению файлов на сервере;
🔸выполнению произвольного кода;
🔸краже конфиденциальной информации.
Как защититься
Чтобы минимизировать риски, рекомендуется:
1. Избегать использования unserialize()
для данных от пользователя. Вместо этого применять безопасные форматы, такие как JSON
2. Использовать параметр allowed_classes
(начиная с PHP 7.0) для ограничения десериализуемых классов
3. Фильтровать классы при десериализации. Можно проверять, принадлежит ли объект разрешённому списку
4. Проверять и очищать входные данные. Например, использовать регулярные выражения для базовой фильтрации перед десериализацией.
👉Читать полностью
BY Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter

Share with your friend now:
tgoop.com/phpproglib/5302