PHP Как определить, ведет ли ссылка URL-адреса исходного изображения к «битому» изображению?

Предположим, у вас есть сценарий генератора миниатюр, который принимает исходные изображения в форме URL-адреса. Есть ли способ определить, является ли исходный URL-адрес «сломанным» - он не существует или ведет к файлу без изображения?


Просто перебор с использованием getimagesize () или другой функции PHP GD не является решением, поскольку подмененные случайные URL-адреса могут быть вовсе не изображениями ( http://example.com/malicious.exe или тот же файл, но переименованный в http://example.com/malicious. jpg ) могут быть введены - такие случаи могут быть легко обнаружены PHP до вызова GD. Я ищу предварительную дезинфекцию GD, прежде чем GD попробует свой батальон проанализировать файл.


в качестве первого шага следующее регулярное выражение проверяет, является ли URL-адрес расширением изображения: preg_match ('@ (https?: // ([- \ w \.] +) + (: \ D +)? (/ ([\ W / _ \.] * (\? \ S +)?) ?)?) ([^ \ s] + (\. (? i) (jpg | png | gif | bmp)) $) @ ', $ txt, $ url);

14
задан ina 10 September 2010 в 16:39
поделиться