将AV扫描添加到文件上载站点

时间:2011-12-26 18:00:53

标签: php javascript html ajax

我不确定这是否在正确的部分,但我正在建立一个文件上传网站,并希望能够扫描上传的文件中的病毒等。我怎么能这样做? / p>

让我开始的任何想法?

由于

4 个答案:

答案 0 :(得分:2)

您可以使用AVG尝试以下内容:

视窗:

<?php
    exec("avgscanx.exe /SCAN=filename.ext/");
    $result = exec("echo %ERRORLEVEL%");
?>

Linux的:

<?php
    exec("avgscan filename.ext -a -H -c");
    $result = exec("echo $?");
?>

两个平台都返回相同的错误代码,允许您确定扫描是否成功。

参考文献:

答案 1 :(得分:2)

clamav库有一个名为php-clamav的PHP绑定。然后,您可以从PHP代码中扫描文件中的病毒:

if ($_FILES['file']['size'] == 0 || !is_file($_FILES['file']['tmp_name']))
{
    throw new Exception('Please select a file for upload!');
} else {
    cl_setlimits(5, 1000, 200, 0, 10485760);
    if ($malware = cl_scanfile($_FILES['file']['tmp_name']))
        throw new Exception($malware.'(ClamAV version: '.clam_get_version(),')');
}
...

另一种方法是安装Mod_Security web application firewall。它可以配置为使用modsec-clamscan扫描所有上传文件中的病毒。

答案 2 :(得分:0)

这取决于您的服务器配置,但是例如在Linux上,可以很容易地安装类似clam的内容并通过命令行访问它。您可以使用php exec()之类的东西来运行它。

答案 3 :(得分:0)

您还可以使用VirusTotals公共API。您可以阅读更多相关信息here。有一些PHP代码here

通过这种方式,您可以获得大量扫描仪,而无需在本地运行AV。另一方面,你必须等待一段时间才能得到结果。