【问题标题】:Add AV Scan to File Upload Site将 AV 扫描添加到文件上传站点
【发布时间】:2012-01-28 02:37:39
【问题描述】:

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

有什么让我开始的想法吗?

谢谢

【问题讨论】:

标签: php javascript html ajax


【解决方案1】:

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】:

    您可以使用 AVG 尝试以下操作:

    窗户:

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

    Linux:

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

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

    参考资料:

    【讨论】:

    • 您好,感谢您的回复,我试了一下并输出了结果,但只有0,这意味着它没有找到任何东西,但是我正在扫描的文件我知道肯定有病毒,当我用 avg antivirus 2012 扫描它时,它发现了病毒,有什么想法吗?
    • 嗯,尝试使用此处的开关从命令行手动扫描:avg.com/ww-en/faq.num-4443。这将有助于弄清楚到底发生了什么。您使用的是 Windows 还是 Linux?
    • 我正在通过我认为是 windows 的 apache xampp 在我的 windows 计算机上对其进行测试
    • 可能是我下载的avg版本,我下载了avg anti-virus 2012并安装到我的电脑上。然后我将程序文件目录中的所有文件复制到xampp中的我的网站文件夹中,这是正确的吗?感谢大家的帮助
    • 这可能是问题所在...应该不需要将程序文件复制到XAMPP目录中; AVG 应该在系统路径中。如果不是,则包含安装文件夹的完整路径以进行测试。另一件可能有用的事情是转到星形菜单上的“运行..”,输入“cmd”,然后尝试从那里运行命令。
    【解决方案3】:

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

    【讨论】:

    • 好吧,太好了,我现在就试试这个,我将如何实现多个扫描仪,例如 Avast、avira、kaspersky 等中的一个......他们都有命令行扫描仪吗,还是我必须直接联系他们?
    【解决方案4】:

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

    这样您可以获得大量扫描仪,并且您不必在本地运行 AV。另一方面,您必须等待一段时间才能看到结果。

    【讨论】:

    • 好的,谢谢,但我最好在本地运行它,是否有多个扫描仪可以做到这一点?
    • 然后你必须在你的服务器上安装你想使用的扫描仪,然后像@Andrew Odri 建议的那样做。
    猜你喜欢
    • 1970-01-01
    • 2014-10-11
    • 2016-06-05
    • 1970-01-01
    • 2017-05-11
    • 1970-01-01
    • 1970-01-01
    • 2017-01-30
    • 2013-09-13
    相关资源
    最近更新 更多