文件类型识别是文件内容还原以及后续的文件敏感信息检测预处理过程中不可或缺的一部分,精确的文件类型识别是文件内容还原和文件敏感信息检测模型选择的关键步骤之一,它能够让我们根据不同的文件类型选择适合的文件内容提取方法和敏感信息检测模型。文件类型的多样性,会给有关数据保密以及信息安全等方面带来威胁,通过对一些文件类型的识别和阻断,可以避免互联网上木马和病毒的传播,还可以避免保密文件的泄漏。

文本文件是一种由若干行字符构成的计算机文件,文本文件大部分为脚本语言类文件,即使用脚本语言创建的文件,脚本语言例如有javascript、python、以及php(Hypertext  Preprocessor,超文本预处理器)等。脚本语言类文件一般是根据所使用的脚本语言以特定后缀名(如.reg,.vbs,.js或.inf等)进行保存,例如javascript脚本语言文件以 .js的后缀名进行保存。现有技术通常是基于文件后缀名来确定文本文件的类型,例如检测到文件的后缀名为“js”,则判断文件类型是javascript脚本语言文件。在对现有技术的研究和实践过程中,现有文本文件类型的识别方式,识别准确率较低,一旦文件的后缀名被修改,将会识别出错误的文件类型,造成误判。

文件类型识别原理

当服务器接收到待识别文件,通过读取待识别文件中的文件魔法数特征,并将文件魔法数特征与预先统计设定不同文件类型的多个魔法数特征进行匹配,获取匹配的文件类型,然后再使用匹配到的文件类型的语法树规则与待识别文件的内容进行对比分析,若语法树规则能正常与待识别文件的内容的框架相对应,则将待识别文件的文件类型识别为预定文件类型。

具体流程

待识别文件可以是任何未携带扩展名的未知文件类型的文件。表示不同文件类型的魔术数,是指文件的最开头的几个用于唯一区别其它文件类型的字节,根据这些字节特征就可以很方便的区别不同的文件类型,相比于只根据文件后缀名来识别文件类型准确率要高的多。

首先要以二进制的方式读取文本文件的前100个字节,然后再读取文件类型与文件魔法数一一对应的文件,将魔法数逐一与读取的字节匹配对应,然后获取到匹配的文件类型。部分文件魔法数样式如下图所示:

图1部分图片类文件魔法数

不同的文件类型的语法树规则是指待识别文件中所记录的文本特征信息,例如可以是待识别文件中的关键字,关键字是指计机语言里事先定义的、有特别意义的标识符,例如if、for、while、def等,javascript语言文件类型、python语言文件类型、php语言文件类型、html语言文件类型或vbs语言文件类型等语法树规则各不相同。

读取待识别文件的内容,根据匹配到的文件类型,获取其预先设定好的语法树规则,然后与待识别文件中的内容进行匹配,当匹配的正确率达到超过预先设定的阈值时,则该待识别文件的文件类型即为所匹配的文件类型。下图为匹配结果示例:

图2 文件类型识别分析结果展示

文件类型的准确识别能够帮助文本内容提取更全面的更准确的文本特征信息,为以后的文本敏感信息检测的算法模型提供更优质的数据输入,提升模型识别的准确率。

防止文件泄露,教你如何识别文件类型相关推荐

  1. WEB中的敏感文件泄露

    文件泄露,根据泄露的信息敏感程度,在WEB漏洞中可以算是中危甚至高危的漏洞,本篇文章就来 介绍下一些常见的泄漏, 主要分为由版本管理软件导致的泄露, 文件包含导致的泄露和配置错误导致的泄露. 版本管理 ...

  2. 可疑文件_如何识别文件的真假

    每个人都下载文件,大家有没有想过,文件可能是假的,尤其来自网盘或专门的下载站. 本文就来谈谈如何识别文件的真假. 一.XcodeGhost 事件 我们从一件真实的事件说起. 2015 年 9 月,苹果 ...

  3. java识别文件类型_在Java中识别文件类型

    我使用 Apache Tika,它使用魔术字节模式和globbing提示(文件扩展名)来识别文件类型,以检测MIME类型.它还支持对文件内容的其他解析(我不真正使用). 以下是一个简单而肮脏的例子,说 ...

  4. 【漏洞实战】某网站JS文件泄露导致拿到服务器权限

    某站点JS文件泄露后台接口导致Get Shell 1.首页是这样子滴,爆破弱口令无果后. 技术资料 2.开始审计js代码:这一步我不知道新手会不会.一般右击网页->点击检查就会出现下面这种界面. ...

  5. cfile清空文件内容_电脑C盘文件夹哪些可以删除?教你如何快速清理,旧电脑还能用3年...

    电脑用久了,便会越来越卡顿,不少电脑卡顿的原因就在于C盘快满了.今天小编所说的就是教大家如何快速删除这些文件夹,释放我们的电脑空间,从而保证我们电脑的流畅性.下面我们就一起来看看,哪些文件夹可以删除吧 ...

  6. m3u8文件在手机上用什么软件看_新技能Get!教你制作m3u8文件 创建属于自己的直播视频列表...

    得益于互联网的发展,网络视频平台成为如今观看视频的主要渠道,不管是电脑还是手机.甚至在智能电视中,我们更喜欢通过下载某平台的客户端进行观看.而这些平台虽然资源众多,但很少能看电视直播,就算能看,找起来 ...

  7. Linux 命令之 file 命令-识别文件类型

    文章目录 介绍 语法格式 常用选项 参考示例 (一)显示文件类型 (二)显示符号链接的文件类型 介绍 file 命令用来识别文件类型,也可用来辨别一些文件的编码格式.它是通过查看文件的头部信息来获取文 ...

  8. linux 识别文件类型,技术|Linux 中 7 个判断文件系统类型的方法

    文件通过文件系统在磁盘及分区上命名.存储.检索以及更新,文件系统是在磁盘上组织文件的方式. 文件系统分为两个部分:用户数据和元数据(文件名.创建时间.修改时间.大小以及目录层次结构中的位置等). 在本 ...

  9. linux怎样自动检查link文件_怎样理解和识别 Linux 中的文件类型 | Linux 中国

    众所周知,在 Linux 中一切皆为文件,包括硬盘和显卡等.在 Linux 中导航时,大部分的文件都是普通文件和目录文件.但是也有其他的类型,对应于 5 类不同的作用.因此,理解 Linux 中的文件 ...

最新文章

  1. 10 年 IT 老兵给新人程序员的几点建议
  2. 浅析企业网站页面设计如何才能更吸引用户注意!
  3. linux基本项目环境搭建
  4. 网狐棋牌(二) CQueueServiceEvent初步分析
  5. 深圳部分写字楼租金暴跌,为何会出现这种情况?
  6. IPv4数据报格式及其语义
  7. 震惊! Leftmost Digit
  8. 开源IP代理池续——整体重构
  9. 关于java是最好的语言的段子_疯狂java——第一章 java语言概述与开发环境
  10. 必读的Python入门书籍,你都看
  11. windows安装软件最好使用独立的文件夹
  12. h5页面如何切图_HTML5自助切图
  13. 摄像头参数介绍 ———— 视场角(FOV)
  14. flask 数据库迁移migration
  15. openjudge 4978 宠物小精灵之收服
  16. 计算机专业简历文案,文案创意求职简历范文
  17. python熊猫图案_Python-熊猫
  18. Google Adsense 西联汇款热点问题的说明
  19. 16进制高精度计算的加减乘20211001
  20. Opengl ES系列学习--莫比乌斯带

热门文章

  1. c4d怎么导入图片描图建模_在CAD中如何直接利用图片进行描图?
  2. 曾经风光无限的90后创业者,如今身在何处?
  3. 打造优质服务体验,星河湾物业再塑”五星小区”
  4. Python基础知识例题
  5. 2018计算机大专分数线,2018各地高考分数线排名
  6. 计算机类专业选考科目要求,新高考报考专业限制 选考科目要求
  7. 冬季进补,根据体质吃药膳
  8. 义教志愿服务系统c语言,[志愿服务]以己为师 东科学子义教传爱心
  9. 只用一根网线连接JetsonNano实现NoMachine远程访问
  10. AVS之HPM3.2代码学习笔记1:TSCPM技术的原理和代码实现