2011-12-26 51 views
2

我不确定这是否在正确的部分,但我正在建立一个文件上传网站,并希望能够扫描文件上传病毒等。我将如何能够做到这一点?添加防病毒扫描到文件上传网站

任何想法让我开始?

感谢

+0

您首先需要病毒扫描程序才能开始使用。 – hakre 2011-12-26 18:02:56

+0

您很可能必须搜索能够通过API访问GUI的防病毒解决方案。我想他们是相当昂贵的,如果甚至存在一般购买没有任何特殊的合同。 – 2011-12-26 18:03:09

+0

也许正在搜索[命令行病毒扫描程序](http://www.google.com/search?q=command+line+virus+scanner)也可以帮助您了解如何启动。 – 2011-12-26 18:04:41

回答

0

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

+0

好的,辉煌的我现在就试试这个,我将如何实现多个扫描器,例如来自Avast ,avira,卡巴斯基等...他们都有命令行扫描仪,还是我必须直接与他们联系? – 2011-12-29 21:56:23

2

你可以尝试像下面使用AVG:

的Windows:

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

的Linux:

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

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

参考文献:

+0

嗨感谢您的答复,我试了出来,并输出结果,但只有0,这意味着它没有找到任何东西,但是我正在扫描的文件,我知道肯定有病毒,当我用平均值扫描反病毒2012年,它发现了病毒,有什么想法? – 2011-12-29 21:54:38

+0

嗯,尝试使用这里的开关手动从命令行扫描:http://www.avg.com/ww-zh/faq.num-4443。这将有助于确定究竟发生了什么。你使用的是Windows还是Linux? – 2011-12-29 21:57:35

+0

我通过apache xampp在我的windows电脑上测试它,我认为它是windows – 2011-12-29 22:03:35

2

ClamAV的图书馆有一个PHP绑定称为php-clamav。然后你可以从你的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扫描全部上传文件中的病毒。

0

您也可以使用VirusTotals公共API。你可以阅读更多关于它here。有一些PHP代码可用here

这样你可以得到很多扫描仪,而且你不必在本地运行AV。另一方面,你必须等待一段时间才能得到结果。

+0

好的,谢谢但我最好想在本地运行它,有无论如何用多个扫描仪来做到这一点? – 2011-12-29 21:56:49

+0

然后,您将不得不安装您想要在服务器上使用的扫描仪,然后执行类似@Andrew Odri建议的操作。 – 2011-12-29 22:14:08