Границы uploads и обработки изображений
triangle/media · AGPL-3.0-or-later
Пакет требует ext-imagick и содержит Triangle\Media\Uploader, ImageProcessing, RateLimiter, URI dispatch и plugin controllers. Uploader принимает project ID; source entry points — uploadFile($data) и uploadLink($url). У ImageProcessing есть cropImage, resizeImage, pixelizeImage, addCover и getImageBlob. Наличие сигнатур не доказывает безопасность всех controller routes и публичность API.
Uploader читает plugin.framex.media.app.image_uri, а controller/install файлы используют другой plugin/media layout. До применения согласуйте реальную конфигурацию и storage paths. Проверка writable directory не проверяет содержимое и права доступа к файлу.
Для uploads нужны аутентификация и владение проектом, проверка extension/MIME/content, лимиты размера/pixels/CPU, случайные storage keys и неисполнимое хранилище. Remote URL import требует SSRF-политики: allowlist протоколов, resolve и запрет private/link-local/loopback targets, повторная проверка redirects, лимиты объёма/времени. Не передавайте произвольный пользовательский URL прямо в uploadLink. Ограничивайте ресурсы image conversion и проверяйте ImageMagick policy.
Production upload/SSRF-тесты здесь не выполнялись. Исходное имя храните только как экранируемые metadata, не доверенный путь. До открытия приватных медиа определите удаление/retention и signed download access.
Прямые зависимости
Заголовок раздела «Прямые зависимости»| Package | Constraint |
|---|---|
php | ^8.1 |
triangle/engine | ^8.1 |
ext-imagick | * |
Сверенная ревизия · 3423e5c35432.