在 PHP 上传时检查病毒的选项都有哪些?

Posted

技术标签:

【中文标题】在 PHP 上传时检查病毒的选项都有哪些?【英文标题】:What are my options to check for viruses on a PHP upload?在 PHP 上传时检查病毒的选项有哪些? 【发布时间】:2012-05-26 11:28:54 【问题描述】:

我正在寻找如何通过 php 检查上传的文件是否有病毒。存在哪些选项,每个选项的优缺点等。

【问题讨论】:

只是避免文件上传中不需要的扩展名。检查如何限制文件扩展名***.com/questions/10456113/… 避免不需要的扩展并不能避免病毒。 【参考方案1】:

ClamAV 是一个免费的杀毒软件,常用于服务器应用程序。

php-clamav 是一个将 ClamAV 绑定到 PHP 的扩展。你可以查看他们的documentation。

我找到了tutorial on how to use clamav as a Zend Framework Validator,其中已经包含有关如何验证上传文件的说明。该教程还应该帮助您在其他框架或架构上使用它。

您也可以通过其命令行界面使用clamscan 调用clamav。这需要安装 clamav 而不是 PHP 扩展。在 PHP 端可以shell_exec('clamscan myuploadedfile.zip'); 然后解析输出。以OK 结尾的行是安全文件,以FOUND 结尾的行是恶意文件。

【讨论】:

【参考方案2】:

您可以使用 VirusTotal.com,他们有一个 API 可用于上传文件,他们会使用多个病毒扫描程序对其进行扫描。

https://www.virustotal.com/

(不幸的是,他们的网站目前正在维护中,但我希望它会尽快备份)

【讨论】:

非常好,因为您可以使用 API 来扫描您的文件 URL。但它的公开版本仅限于在给定的 1 分钟时间范围内最多 4 个任何性质的请求。 我知道这个答案是不久前写的,但我会指出它以防万一。需要注意的是,virustotal 会存储提交的文件以供进一步分析,这意味着如果您希望获得不希望其他人看到的机密文件,则使用 VirusTotal 是不明智的。

以上是关于在 PHP 上传时检查病毒的选项都有哪些?的主要内容,如果未能解决你的问题,请参考以下文章

提交带有上传图片选项的表单时出错。 PHP 代码点火器

查看/下载PHP上传 - 如何安全地进行病毒?

键->值数据都有哪些好的、快速的持久存储选项? [关闭]

每次在浏览器中上传图片啥的出现加载数据那个窗口时就出现windows无法响应,是系统问题还是有病毒?

Angular2 中的 (keyup) 都有哪些选项?

使用 Flutter 时我都有哪些存储数据的选项? (iOS和Android)[关闭]