我想知道$_FILES["file"]["type"]
和之间的区别end(explode(".", $name)
,以及确定检索到的文件类型是否确实是文件正确内容的适当方法。
例如,对名为“ image.exe”并重命名为“ image.jpg”的文件进行排序的最佳方法是什么。
我已经看到了很多有关MIME类型的讨论,但似乎该方法已被弃用。
这是读取扩展名的正确方法:
$ext = pathinfo($name, PATHINFO_EXTENSION);
检查图像是否正确的正确方法是尝试使用图像工具(例如imagemagick或GD)读取图像。GD更容易,但是imagemagick更好地处理大图像,例如从12百万像素相机上传的大图像。
如果您担心jpg确实是exe文件,则安全处理它的唯一方法是将其读取为jpg并尝试创建一个新的jpg(通常同时调整其大小)。Gmail通过图片附件来实现。
还要注意,真正的jpeg可能有某种利用方式,因此,即使它是图像,将其传递给用户也不是安全的。您确实应该调整它的大小以创建一个新的“安全” jpeg,然后将其提供给用户。您可以根据需要创建一个大小相同的新jpg,但是将原始数据传递给其他用户很危险。
我什至不允许您网站的管理员用户访问由随机互联网用户上传的jpg。它可能被用于入侵管理员的PC。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句