Антивирусное сканирование бинарных файлов - Blobs vs. Files

Было много обсуждений по поводу использования blobs vs. files для хранения двоичных файлов, но текущая проблема, с которой я столкнулась, связана с проверкой вирусов. Вероятно, много API, которые можно использовать для сканирования файлов, сохраненных в файловой системе. Есть ли какие-нибудь капли? Существуют ли API, которым могут быть предоставлены потоки или байты [] s, и сканировать их на наличие вирусов и вредоносных программ? Если да, есть ли у кого-нибудь рекомендации? Или это еще одна причина, чтобы избавиться от капли?

FYI - Я использую С# и MongoDb прямо сейчас для своих капли.

Ответ 1

Я нуждался в решении, о котором спрашивал вопрос. Я оценил много вещей и пришел к выводу, что для этого не было ни одной хорошей библиотеки .NET. Поэтому я сделал свой собственный.

Библиотека называется nClam, и она подключается к серверу ClamAV. Это библиотека с открытым исходным кодом (Apache License 2.0), которая имеет очень простой API. Вы можете получить его здесь: https://github.com/tekmaven/nClam. Существует также пакет nuget: nClam. У меня также есть инструкции по настройке сервера ClamAV на моем блоге, здесь: http://architectryan.com/2011/05/19/nclam-a-dotnet-library-to-virus-scan/.

Ответ 2

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

Ответ 3

Конечно, Sophos API (SAVI) может сканировать произвольные буферы памяти - вы можете предоставлять обратные вызовы для доступа к данным, поэтому это могут быть любые данные, к которым вы можете получить доступ.