如何配置 PHP 以使用 `clamscan` 自动扫描上传的文件?

Posted

技术标签:

【中文标题】如何配置 PHP 以使用 `clamscan` 自动扫描上传的文件?【英文标题】:How to configure PHP to automatically scan uploaded files with `clamscan`? 【发布时间】:2012-08-10 06:37:14 【问题描述】:

我有一个想法可以让所有运行 php 的 Linux 服务器更加安全。

我想配置 php.ini 文件上传以使用 ClamAV 的 clamscan 扫描任何新文件上传。

有可能吗?应该如何配置?

【问题讨论】:

无法通过 php.ini。您可以使用其临时名称 $_FILES['whatever']['tmp_name'] 和 exec() 手动调用外部 CLI 扫描程序对上传的文件进行扫描。 Dymanically running ClamAV's clamscan on file uploads with PHP 的可能重复项 mario ,我的意思是 php.ini auto 。如果找到并工作,它将与任何上传脚本一起工作,在任何地方上传任何文件 没有这样的功能。正如你已经被告知的那样。 nginx 或 php-fpm 的选项吗? 【参考方案1】:

虽然在 PHP 脚本中有 libraries 用于与 ClamAV 交互,但无法自动扫描所有上传的文件。

主要是因为灵活性。例如,如果您运行一个安全网站来跟踪各种病毒并存储每个病毒的副本,ClamAV 会在上传过程中接触到它们,从而使您的网站变得无用。更好的方法是在客户端代码中执行此操作,并使用上面链接中的库之一执行扫描。

话虽如此,我不相信这是不可能实现的。您可以 write a PHP extension 挂钩到文件上传以自动在上传的文件上运行 ClamAV。

【讨论】:

wiki.nginx.org/HttpUploadProgressModule#track_uploads wiki.nginx.org/HttpUploadProgressModule#report_uploads 我们可以使用这两个网址吗?? 我猜你也可以分叉那个模块并修改它,以便它使用 ClamAV 扫描任何上传的文件。

以上是关于如何配置 PHP 以使用 `clamscan` 自动扫描上传的文件?的主要内容,如果未能解决你的问题,请参考以下文章

sh clamscan

编写将多个“受感染文件”输出添加在一起的 Clamscan 摘要脚本

扫描 PHP 上传的病毒

如何配置 Laravel mail.php 以使用内置邮件功能?

如何修改文件config.php或者加载自定义的配置文件

如何配置设计以使用自定义电子邮件布局?