gpt4 book ai didi

php - 使用 PHP 对文件上传动态运行 ClamAV 的 clamscan

转载 作者:可可西里 更新时间:2023-10-31 22:13:53 24 4
gpt4 key购买 nike

堆栈,

我想使用 clam 防病毒软件的 clamscan 工具扫描通过我的 php 上传脚本上传的每个文件。我想我已经写了一个很好的脚本,但我想通过你们运行它。

那么假设我发送到这个 php 上传脚本的文件名为“uploadedfile”,下面的代码是否有意义?

<?php

$safe_path = escapeshellarg('/tmp/' . $_FILES['uploadedfile']['tmp_name']);
$command = 'clamscan ' . $safe_path;
$out = '';
$int = -1;
exec($command, $out, $int);

if ($int == 0) {
// all good, code goes here uploads file as normal IE move to
permanent directory etc;
} else {
unlink('/tmp/' . $_FILES['uploadedfile']['tmp_name']);
header(Location: http://www.domain.com/uploadform.php?error=your-file-was-infected-pal);
}

?>

另外,clamscan 会发现 php shell 以及传统的好旧恶意软件吗?

谢谢!

更新-找到答案

我回答了我自己的问题,但没有正式这样做的声誉。这是答案:

对于后来者。我已经使用 EICAR 测试病毒文件 http://eicar.org/86-0-Intended-use.html 测试了这个脚本经过一些调整后,它就可以工作了。返回变量 $int 告诉您文件是否安全。如果 $int 为 0,则没有发现病毒,如果 $int 为 1,则发现有病毒。但是,我必须进行一些更改才能使脚本正常工作(我更新了 $safe_path 变量以使其正确),这是工作脚本:

<?php

$safe_path = escapeshellarg($_FILES['uploadedfile']['tmp_name']);
$command = 'clamscan ' . $safe_path;
$out = '';
$int = -1;
exec($command, $out, $int);

if ($int == 0) {
// all good, code goes here uploads file as normal IE move to
permanent directory etc;
} else {
//whatever you need to do if a virus is found.
}

?>

最佳答案

请注意,如果您的服务器运行 clamav 守护程序 (clamd),则可以使用 clamdscan 而不是建议的 clamscan,这种用法更快,因为使用的病毒签名已经由 clamd 加载。

关于php - 使用 PHP 对文件上传动态运行 ClamAV 的 clamscan,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7648623/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com