我必须检查文件上传器中的文件类型以确定文件是否是图像(jpg,png),我决定通过使用FileReader读取文件的幻数(4个第一个字节)来做到这一点,但我有些疑惑这个方法:
这种方法安全吗?有没有办法用这种方法将非jpg文件上传为jpg?
我已经看到了不同魔法数字大小的文件类型,如2,4,6个字节......所以如果我不得不制作一个通用的方法来确定图像文件类型而不是其他文件类型,我必须从文件中读取最大字节数(以确定最大幻数),对吗?
答案 0 :(得分:0)
这不安全。问题不仅在于幻数,而在于您尝试在客户端验证它。 可以绕过客户端验证直接从脚本上载表单。 正确的方法是使用经过验证的技术验证服务器端的所有内容。
右。不同的文件格式在不同的偏移量上具有不同的幻数。但是如果你关心安全仍然 - 不要相信任何事情。