Intereting Posts
Обрезаемая фатальная ошибка: объект класса mysqli не может быть преобразован в строку Добавить пользовательское поле на странице «Информация о заказе» на странице Opencart скрыть аргумент использования команды в браузере shell_exec PHP в окнах Мой код рандомизации не работает автономно php. Должен ли я шифровать адреса электронной почты? Сортировка массива по дате в порядке убывания по дате в php Отправьте <input type = "file" /> с помощью jQuery $ .post Является ли это разумным способом обработки getters / seters в классе PHP? vBulletin как логин для всего веб-сайта (изменить: определенный прогресс был достигнут) Попытка заполнить выпадающий список с помощью jquery и ajax Выполнить команду задачи symfony из разрешения shell_exec () установить mysql и mysqlnd на ubuntu 12.04 Escape двойные кавычки с переменной внутри HTML echo Как создать учетную запись электронной почты в Cpanel через PHP? Генерация паролей в PHP 5.5 и настройка стоимости

Добавить AV Scan на сайт загрузки файлов

Я не уверен, что это в правильном разделе или нет, но я создаю сайт для загрузки файлов и хочу иметь возможность сканировать файлы при загрузке для вирусов и т. д. Как я смогу это сделать?

Любые идеи, чтобы начать меня?

благодаря

Библиотека 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 локально. С другой стороны, вам придется подождать некоторое время для результата.