2016-02-23 3 views
2

Я изучаю внедрение антивирусного сканера в созданное мной веб-приложение, которое позволяет пользователю загружать файлы. Все функциональные возможности фона завершены, однако я опасаюсь, что злоумышленник может загрузить вирус, а другие пользователи загружают этот файл.Подключить защиту сканирования файлов на мой сайт

Я уже несколько месяцев исследую, как внедрить сканер в мое веб-приложение.

У меня есть различные онлайн-сканеры вирусов, такие как MetaScan-Online и VirusTotal.

Я прочитал документацию, которую они предоставили, однако я все еще запутался и не уверен, могу ли я реализовать эти приложения в своих приложениях с помощью API.

Могу ли я?

И если да, есть ли еще один сканер вирусов, который позволяет одновременно сканировать всю папку файлов?

ответ

0

Если в вас сильная сила, вы можете реализовать класс обслуживания и загрузить входящие файлы в одну из служб общего сканирования. Имейте в виду, что они ограничивают принятый размер файла и количество файлов и что они не хранят отчеты сканирования навсегда.

Metascan

Публичный API для Metascan описана здесь: https://www.metascan-online.com/public-api#!/

Существует также PHP-проверки. Но он использует v1 своего API и выглядит устаревшим. Возможно, свяжитесь с ними, чтобы получить версию обновления, используя API v2. https://www.metascan-online.com/apps#!/php-metascan-online-checker

VirusTotal

Публичный API описана здесь: https://www.virustotal.com/de/documentation/public-api/

Есть несколько библиотек для PHP доступны, только упомянуть об одном из них https://github.com/jayzeng/virustotal_apiwrapper

локального сканирования ClamAV после загрузить

Другое решение - просто запустить сканирование clamav с помощью clamscan после того, как файл был загружен на ваш сервер. Это означает, что вы загружаете в изолированную папку av-scan, сканируете, отбрасываете (если это плохо) или сохраняете (если все в порядке) и, наконец, переходите к папке загрузки. Это медленно, потому что подписи нужно загружать каждый раз, когда команда clamscan вызывается из PHP.

В папке с песочницей я имею в виду ограниченную системную среду для лучшего управления ресурсами, например.«каталог загрузки» с ограниченными или удаленными разрешениями на чтение/запись/exec (пользователь/группа/другое), изолированными от приложения, недоступными из Интернета и ограниченными возможностями PHP (подумайте об директиве disable_functions).

Когда ваш сервер запускает демон clamav (clamd), его можно вызвать clamdscan в папке. Это решение выполняется быстро, поскольку сигнатуры a хранятся в памяти.

+0

Спасибо за ответ и подробный ответ. Я был немного озадачен одним аспектом. В папке с песочницей вы имеете в виду поддомен? Или существует реальный способ создать папку песочницы на filezilla? –

+1

В папке с песочницей я имею в виду ограниченную системную среду для лучшего управления ресурсами, например. «каталог загрузки» с ограниченными или удаленными разрешениями на чтение/запись/exec (пользователь/группа/другое), изолированными от приложения, недоступными из Интернета и ограниченными возможностями PHP (подумайте об директиве disable_functions). - Filezilla FTP позволяет создать новую папку и изменить ее разрешения. –

+0

Спасибо, мне кажется, я понял это сейчас. Так я скачаю сканирование clam с сайта clamAvs? Затем поместите сканирование моллюсков в папку песочницы. Затем создайте папки в песочнице (отбросьте и удерживайте). И с помощью PHP отправлять файлы в песочницу, когда пользователь загружает файл, запускает сканирование через PHP, а затем перенаправляет файл в необходимую папку (отбрасывать и/или сохранять). Отправляйте файл из папки песочницы в папку, которая не имеет ограничений (т. Е. Не песочница). –

0

Вам придется обрабатывать отправку папки самостоятельно, они не смогут (как внешнюю службу) получить список файлов для определенной папки.

VirusTotal предоставляет публичный API для сканирования вашего файла, это хороший старт. Вы можете реализовать многопоточность и сохранить результат для каждого файла. Таким образом, вы избежите отправки нескольких раз в один и тот же файл.

Смежные вопросы