[PHP] 检测文件是否有病毒的实现逻辑
2023-02-18 15:41:28 时间
在用户收到发送过来的文件后 , 要能够检测出这个文件是否是病毒 , 核心的软件是clamav , 可以在linux命令行执行,检测文件或目录里的病毒
下载和安装可以参考其他博文
需要注意的是要开启下配置文件中的
LocalSocket /tmp/clamd.socket
运行时是以守护进程的方式运行着一个clamd的程序 , 检测的时候只需要调用下面命令
/usr/local/clamav-0.102.1/bin/clamdscan 文件
响应的信息是下面的内容
/usr/local/clamav-0.102.1/bin/clamdscan /tmp/attachment_04613DE5A94DD00E1F48F7A5D39A802C9700000000000001_4 /tmp/attachment_04613DE5A94DD00E1F48F7A5D39A802C9700000000000001_4: Xls.Virus.Mailcab-6702020-0 FOUND ----------- SCAN SUMMARY ----------- Infected files: 1 Time: 0.176 sec (0 m 0 s)
在PHP中调用exec函数 , 调用上面的命令就可以实现检测了
$cmd="/usr/local/clamav-0.102.1/bin/clamdscan {$file}"; exec($cmd,$output);
相关文章
- 监视EntityFramework中的sql流转你需要知道的三种方式Log,SqlServerProfile, EFProfile
- 轻量级ORM框架——第二篇:Dapper中的一些复杂操作和inner join应该注意的坑
- 轻量级ORM框架——第一篇:Dapper快速学习
- asp.net mvc 之旅 —— 第六站 ActionFilter的应用及源码分析
- asp.net mvc 之旅 —— 第五站 从源码中分析asp.net mvc 中的TempData
- 分布式架构中一致性解决方案——Zookeeper集群搭建
- 搭建高可用的redis集群,避免standalone模式带给你的苦难
- asp.net mvc 之旅—— 第四站 学会用Reflector调试我们的MVC框架代码
- 使用强大的可视化工具redislive来监控我们的redis,别让自己死的太惨~~~
- asp.net mvc 之旅—— 第三站 路由模板中强大的自定义IRouteConstraint约束
- 使用memadmin可视化监视我们的memcache
- asp.net signalR 专题—— 第四篇 模拟RPC模式的Hub操作
- asp.net signalR 专题—— 第三篇 如何从外部线程访问 PersistentConnection
- asp.net signalR 专题—— 第二篇 对PersistentConnection持久连接的快速讲解
- asp.net signalR 专题—— 第一篇 你需要好好掌握的实时通讯利器
- Linq专题之提高编码效率—— 第三篇 你需要知道的枚举类
- Linq专题之提高编码效率—— 第二篇 神一样的匿名类型
- Linq专题之提高编码效率—— 第一篇 Aggregate方法
- 15天玩转redis —— 第十一篇 让你彻底了解RDB存储结构
- 15天玩转redis —— 第十篇 对快照模式的深入分析