Flysystem 的 ClamAV 扫描器
发布日期 作者 Paul Redmond
Flysystem 的 ClamAV 扫描器是 Michael Griego 开发的软件包,它使用 ClamAV 防病毒引擎扫描文件以查找恶意软件。自述文件更详细地解释了此适配器如何与“后备”适配器协同工作。
此软件包为 Flysystem 提供了一个文件系统适配器,它使用流行的 ClamAV 防病毒引擎扫描从底层文件系统读取和写入的文件。此适配器充当一个直通适配器,位于您的应用程序和用于存储文件的任何具体 Flysystem 适配器之间。由于此扫描器本身就是一个 Flysystem 适配器,因此只需将其作为现有 Flysystem 适配器的替换插入现有应用程序中,即可实现它,这样所有文件系统调用都将通过 ClamAV 适配器进行。
以下是设置的简要说明,它需要一些东西:后备适配器(例如,本地)、Quahog ClamAV 集成库以及此软件包中的 ClamAvScannerAdapter
use League\Flysystem\Adapter\Local;use Socket\Raw\Factory as SocketFactory;use Xenolope\Quahog\Client as ClamAVScanner;use League\Flysystem\Filesystem;use mgriego\Flysystem\ClamAV\ClamAvScannerAdapter; $backingAdapter = new Local(__DIR__.'/path/to/root'); // Create a new socket instance$socket = (new SocketFactory())->createClient('tcp://127.0.0.1:3310'); // Create a new instance of the Client$quahog = new ClamAVScanner($socket); // In this case, copies will be scanned.$adapter = new ClamAvScannerAdapter($quahog, $backingAdapter, true);$filesystem = new Filesystem($adapter)
在使用过程中,文件在以下操作期间会被扫描
-
read
/readStream
-
write
/writeStream
-
update
/updateStream
-
如果适配器已配置,则为
copy
如果 ClamAV 在任何这些操作期间在文件中检测到恶意软件,ClamAvScannerAdapter 将抛出一个 VirusFoundException 异常。getReason()
方法将为您提供检测到的恶意软件的名称,而 getPath()
将提供相关文件的路径。
我建议您阅读 自述文件,其中详细介绍了如何使用此适配器以及如何正确使用 clamd
守护进程。要详细了解此软件包,获取完整的安装说明,并在 GitHub 上查看源代码,请访问 mgriego/flysystem-clamav。