前端——利用File signature精准校验文件类型

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了前端——利用File signature精准校验文件类型相关的知识,希望对你有一定的参考价值。

参考技术A 背景:在进行文件上传时,往往需要对上传文件的类型进行限制。最简单也是最常用的文件类型校验方法,是直接校验文件的拓展名,但由于拓展名可以手动随意修改,因此这种方式并不保险。那么有没有什么方法可以准确地判断出上传文件的类型呢?

File signature 是指在文件中用于标识文件格式的字节,通常在文件的开头放置一小段字节(大多数为2-4个字节)。不同的文件类型都有着对应的文件签名,通过 List of file signatures 和 All File Signatures 我们可以查询到各个文件类型的签名。

但TypedArray将会使用系统默认的字节顺序(详情见 TypedArray or DataView: Understanding byte order ),而使用DataView 则会默认使用从大到小的顺序:

可截取16进制字符串中的第offset到offset+size个个byte与signature进行比对

可根据文件的后缀名得到对应文件签名的offset与size,直接截取文件中文件签名的内容,而无需加载文件的全部二进制数据。

以上是关于前端——利用File signature精准校验文件类型的主要内容,如果未能解决你的问题,请参考以下文章

微信JS-SDK出现“invalid signature”的问题时该如何解决

前端上传数据-图片和视频格式校验

微信公众号服务器配置(校验)

微信公众号服务器配置(校验)

Android中带你开发一款自动爆破签名校验工具kstools

OpenWrt出现Signature check failed. Remove wrong Signature file错误的解决办法