我试图通过检查mime类型来允许在我们的应用程序中安全上传Web字体。这适用于我们允许的大多数类型的文件,但这对于Web字体来说是个问题。
我们使用PHP的http://php.net/manual/en/book.fileinfo.php
检查mime类型问题是php会将所有网络字体检测为mime“application / octet-stream”,但允许这样做,会允许.exe或许多其他可能危险的文件上传。
处理此类文件上传的最佳方法是什么?
答案 0 :(得分:1)
查找包含有关字体格式信息的魔术文件,并将其传递给finfo_open()
。
答案 1 :(得分:0)
我不依赖于PHP内置的mime checkers。我总是遇到问题。如果您正在运行linux,请使用PHP的exec命令在bash中执行mimetype命令并将其返回给PHP。
答案 2 :(得分:0)
U应该使用phpinfo来检查扩展名,mime类型可以是假的,而U可以使用mime类型的pdf获取.php文件。
修改
$file = "abc.ttf";
if(in_array(strtolower(pathinfo(file, PATHINFO_EXTENSION)), array("ttf")))
{
// OK
}
你可以为数组添加更多扩展
答案 3 :(得分:0)
如果TTF文件是唯一允许上传的文件,请使用以下命令: http://www.phpkode.com/scripts/item/ttf-info-plus/