判断文件格式

在某些时候,我们需要判断文件是什么类型;而通过文件后缀(扩展名)并不能满足需求,因为扩展名可随意修改,试想一下对方给你发送了一个伪造扩展名的图片文件,实际上却是个木马病毒,又或者恶意攻击者上传了一个木马病毒到你的服务器,而你的程序却认为它是张图片;

况且在Linux环境下,没有扩展名这一说;扩展名只是一种用于方便辨认文件类型的方法,虽然它有时候不可信。

何如判断扩展名类型

  • 在可信任的情况下,可通过文件后缀(扩展名)来判断:如 .txt 是一个文本文件;此方法可作为判断文件类型的辅助条件;
  • 通过文件的文件头标志来判断;

绝大多数文件都包含头信息,比如 RAR 压缩文件的文件头(使用十六进制编辑器查看):52 61 72 71;JPEG文件的文件头:FF D8 FF

原创内容,如需转载,请注明出处;

本文地址: https://www.perfcode.com/p/panduanwenjiangeshi.html

分类: 参考文档 计算机技术
推荐阅读:
SQL创建数据库 可使用 CREATE DATABASE 句用于创建一个数据库;
Python调用谷歌翻译API实现文本翻译 使用Python向谷歌翻译URL进行GET请求,得到网页内容后使用正则表达式进行解析,获得翻译结果;
CreateThread()创建线程传递SOCKET参数 使用CreateThread()创建线程传递SOCKET参数的正确方法如下:
WordPress获取指定数量的随机文章(不用插件) 我们希望每次打开网站时,在某个位置生成随机的文章列表,可以通过以下代码实现:
Rust debug_assert宏的用法和示例 在Rust中,debug_assert宏是一个用于在调试时检查条件的宏;它类似于assert宏,不同之处在于debug_assert仅在Rust编译器的debug模式下进行检查,而在release模式下被完全忽略。
Python tuple元组 tuple(元组)类似于列表,但元组当中的项不能被修改。