Я уже давно задавал этот вопрос: как точно определяется MIME-тип файла? Я считаю, что это делается путем проверки того, содержат ли определенные байты файла какие-либо из известных магических чисел / сигнатур файлов , верно?
Если да, возникает другой вопрос, давайте скажем, я загружаю bash-скрипт с поддельной подписью файла GIF на веб-сайт, который позволяет загружать только изображения, что произойдет? Либо:
image / gif
ошибочно возвращается как mimetype, и загрузка может продолжаться У меня нет HEX редактор установил банкомат, и я не люблю делать выводы, связанные с безопасностью, из тестов, так как я могу что-то пропустить (или неверно истолковать), поэтому мой вопрос: какой из вышеперечисленных вариантов правильный?
Также, есть ли какие-либо другие передовые методы (помимо проверки mimetype), чтобы убедиться, что любой данный файл на самом деле является тем, чем он кажется / нуждается (или разрешен)? Заранее спасибо.
PS: Для ясности, я не спрашиваю об индексе типа
в суперглобале $ _ FILES
.