我正在尝试创建一个验证系统来检查上传的文件是否已安全,并且我使用了ClamAV,但无法正常运行(Wampserver64):(
给我这个错误:
套接字操作失败:无法建立连接,因为 目标计算机明确拒绝了它。 (SOCKET_ECONNREFUSED)。异常(10061)
我的代码:
// CLAMAV VERFICATION
$validator = \Validator::make($request->all(), [
'file' => 'clamav',
]);
if ($validator->fails()) {
return response()->json([
'title' => trans('lang.OOPS'),
'html' => $validator->errors()->all(),
'type_is' => 'swal',
'status' => 'error'
]);
}
我使用以下软件包:https://github.com/sunspikes/clamav-validator
希望获得帮助,谢谢:)
答案 0 :(得分:0)
该脚本需要clamd。同时,甚至还有Windows版本:https://www.clamav.net/documentation(不知道)。不过,Windows上可能缺少守护程序和/或套接字。使用shell_exec()
时,您只能使用从CLI
...运行的任何扫描仪,因为该脚本似乎是为Linux编写的。 documentation明确指出:
默认情况下,程序包将尝试通过默认套接字文件(
clamav
)连接/var/run/clamav/clamd.ctl
守护程序,如果失败,它将尝试tcp端口(127.0.0.1:3310
)但是您可以设置
CLAMAV_UNIX_SOCKET
(套接字文件路径)或CLAMAV_LOCAL_TCP_SOCKET
(host:port
)环境变量来覆盖它。
Windows上可用的最佳选项可能是:
$stdOut = shell_exec("C:\...\clamscan.exe C:\...\filename.zip");
除非有任何CLAMAV_LOCAL_TCP_SOCKET
:3310
可以连接到
...,因为那里没有CLAMAV_UNIX_SOCKET
。