Существует ли безопасный способ загрузки картинки на сайт?
Всем привет! Хочу сделать возможность загрузки картинок пользователями. Размер картинок будет всегда и для всех одинаковая. Кроме прочих условий при загрузке, можно ли еще как-то обезопасить загрузку картинок(чтобы вместо картинки не загрузили скрипт или еще что-то)?
Поможет ли изменение качества картинки, в случае если в картинке скрипт или т.п.?
Pardon Me! Where Do I Find 4giveness?, ну если скрипт есть, значить тот кто его загрузил, знает как запустить. Если бы невозможно было бы запустить, столь жестких проверок не было бы
1) Скрипт можно запихнуть в блок служебных данных, например, в exif, либо в конец файла.
От исполнения на стороне сервера защититься можно двумя способами: а) оставить в картинке только данные самой картинки (как написал Дмитрий).
б) не выполнять ни через php image.jpg, ни через include/require. “$file = ‘image.jpg’; .... require $image”;
От исполнения примесей на яваскрипте в браузере X-Content-Type-Options: nosniff, но проверьте сперва, что картинки, включая сгенерированные, отдаются с правильным mime типом. Статью по ссылке применять осторожно - авторы мало что сказали о возможных проблемах.
2) Если разрешаете загрузку svg - то ознакомьтесь с этой заметкой. Скорее всего оно уже неактуально, но вдруг.