Я не уверен, что это в правильном разделе или нет, но я создаю сайт для загрузки файлов и хочу иметь возможность сканировать файлы при загрузке для вирусов и т. д. Как я смогу это сделать?
Любые идеи, чтобы начать меня?
благодаря
Библиотека clamav имеет привязку PHP, называемую php-clamav . Затем вы можете сканировать файлы для вирусов из вашего PHP-кода:
if ($_FILES['file']['size'] == 0 || !is_file($_FILES['file']['tmp_name'])) { throw new Exception('Please select a file for upload!'); } else { cl_setlimits(5, 1000, 200, 0, 10485760); if ($malware = cl_scanfile($_FILES['file']['tmp_name'])) throw new Exception($malware.'(ClamAV version: '.clam_get_version(),')'); } ...
Другой альтернативой является установка брандмауэра веб-приложений Mod_Security . Он может быть настроен для сканирования всех загружаемых файлов на вирусы с помощью modsec-clamscan .
Вы можете попробовать что-то вроде следующего с помощью AVG:
Окна:
<?php exec("avgscanx.exe /SCAN=filename.ext/"); $result = exec("echo %ERRORLEVEL%"); ?>
Linux:
<?php exec("avgscan filename.ext -a -H -c"); $result = exec("echo $?"); ?>
Обе платформы возвращают одни и те же коды ошибок, позволяя вам определить, было ли сканирование успешным или нет.
Рекомендации:
Это зависит от конфигурации вашего сервера, но, например, от linux, легко установить что-то вроде моллюска и получить доступ к нему через командную строку. Вы можете использовать что-то вроде php exec()
для его запуска.
Вы также можете использовать общедоступный API VirusTotals. Вы можете прочитать об этом здесь . Здесь есть некоторый PHP-код.
Таким образом, вы получаете много сканеров, и вам не нужно запускать AV локально. С другой стороны, вам придется подождать некоторое время для результата.