database - 文件上传的免费服务器端防病毒/安全/木马保护?

标签 database security antivirus-integration

我允许用户上传相册之类的照片,也可以将文件(目前是文档)作为邮件附件。所以我假设我需要一些防病毒/安全工具来首先扫描文件,以防人们上传受感染的东西。所以两个问题: 1) 是否有任何“免费”或开源工具可供我使用或集成到我的环境中:codeignitor php? 2) 如何从系统的其余部分保护上传区域?说杀毒软件没抓到病毒,上传了,如何防止它感染其他文件?比如上传区域是否可以被沙盒化或始终使用该文件路径供用户访问内容,这样它就不会传播到系统的其他部分?

最佳答案

有免费的病毒扫描程序 clamav。安装它,您可以执行以下操作:

function virus_detected($filename)
{
        $clamscan = "/usr/local/bin/clamscan";
        $result = exec("$clamscan -i --no-summary $filename");
        return strlen($result)?true:false;
}

至于安全性,请确保将临时文件上传到 Web 根目录之外的目录。然后您应该验证文件类型,将文件重命名为原始文件名以外的名称并附加适当的扩展名(gif、jpg、bmp、png)。我相信除了 php 本身的漏洞之外,这应该让您相当安全。

有关在 php 中验证文件类型的更多信息,请查看: http://www.php.net/manual/en/function.finfo-file.php

关于database - 文件上传的免费服务器端防病毒/安全/木马保护?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4948576/

相关文章:

database - 使用 NLS_CALENDAR 参数设置数据库为 'Thai Buddha'

python - 用于在服务器上存储 Openssl 密码的安全选项(Linux、Python、CherryPy)

sdk - 使用 Antivirus SDK 扫描上传的文件

javascript - WebRTC 和安全 - 拦截连接?

linux - 如何反汇编正在运行的linux内核?

Perl、ClamAV、扫描流中的病毒

azure - 实时防病毒检查Azure网站文件上传

database - Postgres INSERT INTO ... SELECT 违反外键约束

sql - 通过数据库中的文本字段实现智能搜索

MySQL 数据透视表 - 主键的存在更改查询结果