在 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 上传时检查病毒的选项都有哪些?的主要内容,如果未能解决你的问题,请参考以下文章