我该如何在PHP上传文件时检查病毒?

20

我想了解如何通过PHP检查上传的文件是否有病毒。有哪些选项,每个选项的优缺点等等。


只需避免在文件上传中出现不需要的扩展名。 查看如何限制文件扩展名 https://dev59.com/yGkv5IYBdhLWcg3wpCTJ - Allahbakash.G
8
避免安装不必要的扩展并不能避免病毒。 - Daniel
2个回答

28

ClamAV是一款免费的反病毒软件,通常用于服务器应用。

php-clamav是一个扩展程序,用于将ClamAV绑定到PHP。您可以查看他们的文档

我找到了一个关于如何将ClamAV用作Zend Framework验证器的教程,其中已经包含了验证上传文件的说明。该教程还应该帮助您在其他框架或架构上使用它。

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


8
您可以使用 VirusTotal.com,他们提供一个API,您可以使用它来上传文件,并使用多个病毒扫描器对其进行扫描。 https://www.virustotal.com/

非常好,因为您可以使用API扫描文件URL。但是其公共版本在给定的1分钟时间范围内最多只能进行4个任何性质的请求。 - Daniel
5
我知道这个答案是一段时间之前写的,但我还是想指出来。需要注意的是,VirusTotal会存储提交的文件以进行进一步的分析,这意味着如果您希望保密的文件被他人看到,则在使用VirusTotal时并不明智。 - vakus

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接