文件类型识别的实现思路

一些网络设备,比如防火墙或者审计系统,一般都有文件过滤的功能,可以对用户上网传输的文件进行过滤,比如可以限制用户通过ftp下载word文档,也就是文件类型为doc或者docx的文件。

那么文件过滤的功能是怎么实现呢?这里说一下大概的实现思路。

1、文件识别理论基础

首先,用户上网传输文件一般大都是经过传输层的tcp协议,了解tcp协议的同学应该知道,tcp报文一般不分片,而是使用分段,那么一个文件一般都很大,所以一个tcp分段报文是传输不完的,那么一个文件必然就会存在很多tcp分段报文中,所以在进行文件识别和过滤之前,需要先将文件的内容正确的还原出来,所以第一步涉及到tcp分段的重组,当然今天重点只是讲文件识别和过滤,tcp分段重组下次再单独讲。完成tcp分段重组,重组文件内容之后,我们需要先识别文件的类型,那么如何识别文件的类型呢?

这里我们还要注意一点,文件扩展名并不等同于文件类型,比如一个文件名为aaa.txt的文件,它的文件扩展名为txt,文件类型也为txt,但是如果我把文件名改完aaa.exe,那它的文件扩展名就变成了exe,但实际文件类型还是为txt,所以两者并不等同。我们在做文件过滤时,不是以文件扩展名来限制的,而是以文件类型。因为用户可以通过修改文件扩展名来逃避文件过滤检查。

那么我们到底怎么来识别一个文件的类型呢?其实就是通过文件的魔数,也叫file magic,也就是每个文件都带有自己的特征,这个特征我们直接用对应软件打开看不到,但是windows通过Notepad++࿰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值