getimagesize () - довольно надежный признак того, что файл является изображением, да.
Будет определено, имеет ли изображение допустимый заголовок.
Он (обычно) не определяет, есть ли какие-либо искажения в фактических данных изображения, которые могут отображаться как испорченное изображение или ошибка при загрузке изображения.
Вы также можете иметь в виду, что файл может быть допустимым файлом изображения, но также может скрывать и другие данные - либо в метаданных, данных изображения, либо после окончания данных изображения. Таким образом, хотя getimagesize () может сообщить вам, что у вас есть действительное изображение, это не обязательно означает, что файл также не является допустимым как другой тип. Поскольку файлы JAR и ZIP считываются из конца файла, возможно, что файл является и действительным изображением, и действительным файлом JAR / ZIP, а файлы JAR могут выполняться в браузере - основа эксплойта GIFAR .