Мне нужно разрешить пользователям сайта предоставлять удаленные «горячие» изображения.безопасная обработка удаленных «горячих» изображений
Я понимаю, что это немного опасно, так вот процедура в данный момент:
1) разобрать путь при условии использования PHP Pathinfo и разбить путь на части (хост, имя файла, расширение), которые затем надлежащим образом уцелевших.
2) выполнить запрос на завивку для заголовков изображений, как описано здесь: How can one check to see if a remote file exists using PHP? и убедиться, что у него есть действительный тип mime png или jpg и код возврата HTTP 200.
3) убедитесь, что имя файла и расширение (из приведенного выше Pathinfo) является допустимым PNG или JPG-файл (я не принимать гифы и т.д.)
4) наконец, хранить данные пути изображения в нескольких столбцы в БД (ускользание данных)
Я ничего не пропустил? Есть ли еще опасность? Я думал, что, возможно, мне нужно снова сделать функцию завитка на конце дисплея, чтобы убедиться, что изображение все еще там, и что это все еще изображение.
Спасибо за любой совет.
Если вы хотите быть еще умнее, вы можете попробовать получить фактические данные, а затем попытаться создать объект изображения в PHP. Однако что бы вы ни делали в этот момент, это не помешает кому-то помещать правильное изображение на удаленный сервер, предоставляя вам URL-адрес, а затем меняя это изображение на что-то злонамеренное. –
@AleksG - да, это проблема, и почему я думаю, что лучше всего сделать завиток на дисплее, а также сохранить. Тем не менее, это почти побеждает цель предоставления удаленных изображений (так как я получаю полосу пропускания, а также попадание в хранилище, даже если временно) – julio
Почему вы все равно хотите сделать это? Какие риски вы боитесь, когда путь не будет проверен? – Gumbo