`unserialize()` створює обʼєкти будь-якого класу, який може завантажити автозавантажувач, з властивостями, які задав автор рядка, і потім PHP сам викликає їхні магічні методи: `__wakeup()`, `__unserialize()`, `__destruct()`, `__toString()`. Ланцюжок таких методів із класів у `vendor/` (gadget chain) дає запис файлів чи виконання коду. Чужі дані розбирають через `json_decode()`, а якщо формат PHP неминучий, то з `allowed_classes => false`, `max_depth` і перевіркою HMAC до розбору.
Безпека для Senior: питання на співбесіду
2 питання рівня Senior з теми Безпека з розгорнутими відповідями, порадами та перевіркою.
Тема
Рівень
2
питання
SEC
Безпека·Senior
·unserialize
·object injection
·gadget chain
Завантажую відповідь…
Сторінка питання →
SEC
Безпека·Senior
·SSRF
·вебхуки
·cloud metadata
SSRF (server-side request forgery) трапляється, коли сервер іде за адресою, яку задав користувач, і стукає туди, куди сам користувач дістатись не може: у метадані хмари на `169.254.169.254`, у Redis на localhost чи в адмінку у внутрішній мережі. Захист: дозволяти лише `http(s)`, самим резолвити хост і відкидати непублічні адреси, підключатися саме до перевіреної IP, не йти за редіректами без повторної перевірки, а надійніше пустити такі запити через окремий egress-проксі.
Завантажую відповідь…
Сторінка питання →
МИНУЛОГО РАЗУ
Немає карток для цього зрізу
РАУНД ЗАВЕРШЕНО
/