Безопасно разрешите загрузку веб-шрифтов (ttf, eot, svg, woff, otf) через MIME TYPES / fil - PullRequest
0 голосов
/ 31 мая 2011

Я пытаюсь разрешить безопасную загрузку веб-шрифтов в нашем приложении, проверяя типы MIME.Это работает для большинства типов файлов, которые мы разрешаем, но это проблема для веб-шрифтов.

Мы проверяем mime-тип с помощью PHP http://php.net/manual/en/book.fileinfo.php

Проблема в том, что php обнаружит всевеб-шрифты в виде mime «application / octet-stream», но если это разрешить, разрешит загрузку файлов .exe или многих других потенциально опасных файлов.

Каков наилучший способ обработки загрузки файлов такого типа?

Ответы [ 4 ]

1 голос
/ 31 мая 2011

Найдите магический файл, который содержит информацию о форматах шрифтов, и передайте его finfo_open().

0 голосов
/ 01 июня 2011

Если TTF-файлы являются единственными, которые могут быть загружены, используйте это: http://www.phpkode.com/scripts/item/ttf-info-plus/

0 голосов
/ 31 мая 2011

U должен использовать phpinfo для проверки расширения, тип mime может быть поддельным, а U может получить файл .php с типом mime в формате pdf.

EDIT

$file = "abc.ttf";

if(in_array(strtolower(pathinfo(file, PATHINFO_EXTENSION)), array("ttf")))
{
    // OK
}

вы можете добавить больше расширений в массив

0 голосов
/ 31 мая 2011

Я не полагаюсь на средства проверки пантомимы, встроенные в PHP.У меня всегда есть проблемы с ними.Если вы используете Linux, используйте команду PHP exec, чтобы выполнить команду mimetype в bash и вернуть ее в PHP.

...