网站有让用户上传图片功能,怎么判断上传上来的图片是真正的图片而不是其他文件只修改了个扩展名的伪图片呢
1 回复
Magic number 是指檔案前 16-bit 字元,用來判斷該檔案的類型
用 Node.js 來寫的話,應該是讀取檔案 Buffer 然後判斷 Magic number,例如:
var fs = require('fs')
fs.readFile('./path/to/image.jpg', function(err, buf) {
var JPG_MAGIC_NUMBER = 'ffd8'
if (buf.toString('hex', 0, 2) === JPG_MAGIC_NUMBER) {
return console.log('this file is JPG')
}
console.log('this file is not JPG')
})