Если вы думаете, getimagesize()
слишком медленный (потому что все загрузки выполняются в сверхскоростном режиме, как мы знаем;)), вы можете попробовать fileinfo
библиотеку .Он проверяет по крайней мере несколько байтов в файле.Это довольно быстро, я использую его каждый день для сотен файлов в приложении, которое должно работать быстро, и оно работает.
Однако то, что вы не проверяете, вы не знаете.Поэтому, возможно, сначала проверьте расширение, убедитесь, что имя файла и хранилище надежно сохранены, и что они должным образом отправлены клиенту.
Прежде чем позволить какой-либо библиотеке изображений коснуться его (и это должно включать те, которые находятся на компьютерах вашего сайта).пользователи), в целях безопасности файл должен быть проверен антивирусным сканером.Это намного медленнее по сравнению с getimagesize()
, другие предлагают взглянуть в файл на любое вхождение <?php
, чтобы предотвратить загрузку в качестве полезной нагрузки.Естественно, это включает в себя проверку файлов phar
, если включение не предотвращается с помощью настроек безопасности установок PHP (например, с помощью suhosin)
Помимо проверки на вирусы по требованию, хранимые файлы должны время от времени проверяться иснова из-за ранее неизвестных подвигов.
Так что часть этого всегда является фоновой работой.Но даже проверки в реальном времени по требованию часто не занимают так много времени, если ваше приложение не загружает все время.Возможно, вы захотите ввести некоторую очередь выгрузки, чтобы выгрузка уже была завершена, но файл get стал доступен для загрузчика после выполнения необходимых задач.