2011-12-23 14 views
11

C'è stato un sacco di discussioni su SO sull'utilizzo di blob contro file per archiviare i binari, ma il problema attuale riguarda la scansione dei virus. Probabilmente ci sono molte API che possono essere utilizzate per analizzare i file salvati su un file system. Ce ne sono per i BLOB? Esistono API a cui è possibile assegnare stream o byte [] e viene loro richiesto di eseguire la scansione di virus e malware? Se sì, qualcuno ha qualche raccomandazione? O è questa l'ennesima ragione per evitare chiazze?Scansione virus dei binari - Blob contro file

FYI - Sto usando C# e MongoDb in questo momento per i miei BLOB.

+0

Stai cercando API antivirus gratuite, open source o commerciali? –

+0

Qualsiasi di questi lavori, purché funzionino ... – carlbenson

risposta

3

Non so se esistono API per la scansione dei dati in memoria (non ne ho trovato nessuno), ma puoi sempre inserire i tuoi dati binari in un file temporaneo, eseguire la scansione del file (chiamando un programma esterno che funziona nella riga di comando) ed eliminarlo quando è finito.

3

Certamente l'API di Sophos (SAVI) può analizzare buffer di memoria arbitrari: è possibile fornire richiami per l'accesso ai dati, in modo che possano essere tutti i dati a cui è possibile accedere.

4

Avevo bisogno di una soluzione a cui la domanda si ponesse. Ho valutato molte cose e sono giunto alla conclusione che non c'era davvero una buona libreria .NET per questo. Così ho fatto il mio.

La libreria è chiamata nClam e si connette a un server ClamAV. È una libreria open-source (Apache License 2.0) con un'API molto semplice. Puoi ottenerlo qui: https://github.com/tekmaven/nClam. C'è anche un pacchetto nuget: nClam. Ho anche alcune istruzioni su come configurare il server ClamAV sul mio blog, qui: http://architectryan.com/2011/05/19/nclam-a-dotnet-library-to-virus-scan/.

+0

È possibile installare il server ClamAV su Windows Server 2008? In che modo ClamAV mantiene gli aggiornamenti dei virus sul mio server? Ho un'applicazione Web in esecuzione su quel server che ha una funzione di caricamento. Devo analizzare il flusso dei file prima di inviarlo al file server. –