r4sh
Новичок
Не там проверки надо делать. Достаточно проверить что картинка - один из поддерживаемых типов изображения.(по mime, по расширению). По mime не универсально. Всречал где отключен mime_content_type() . Можно написать свой компонент определения mime-типа, конечно, или взять готовый. Но его легко подделать опять же.
Опасны скрипты, а скрипты исполняются апачем только по расширению - значит сохранить с соответствующем расширением(jpeg, png, gif, jpg...). И убедиться что это расширение не может исполняться как скрипт(иногда делают капчи как image.jpg, а это пхп скрипт.), и защититься от null-byte.
И опять же, если человек называл гифку как .jpg, и исковеркал еще и mime, то это врядли допропорядочный пользователь, и заботится, чтобы сервис корректно работал и для него - нет смысла.
Опасны скрипты, а скрипты исполняются апачем только по расширению - значит сохранить с соответствующем расширением(jpeg, png, gif, jpg...). И убедиться что это расширение не может исполняться как скрипт(иногда делают капчи как image.jpg, а это пхп скрипт.), и защититься от null-byte.
И опять же, если человек называл гифку как .jpg, и исковеркал еще и mime, то это врядли допропорядочный пользователь, и заботится, чтобы сервис корректно работал и для него - нет смысла.