Se il file caricato è in un formato immagine valido, .FromStream
non genererà un'eccezione, anche se contiene un virus. Cioè, non ci sono virus che ci controllino.
D'altro canto, non è possibile attivare il virus, poiché il file a questo punto viene gestito solo come byte non elaborati.
(È certamente possibile, se non fattibile, che contenga un attacco indirizzato direttamente alla classe Image
.NET, ad esempio tramite buffer overflow.Tuttavia, oltre ad essere altamente improbabile che esista una tale vulnerabilità, è ancora più improbabile che qualcuno prendersi la briga di prendere di mira un tale vettore di nicchia).
Quindi, a questo punto sei perfettamente (realisticamente parlando) sicuro, ma non hai idea se il file è pulito o meno.
La vera domanda diventa, cosa succede dopo questo file?
Viene salvato su disco e utilizzato localmente?
In questo caso dovresti avere qualche forma di antivirus per controllarlo, se non altro per il tuo beneficio - se credi in esso, puoi semplicemente fare in modo che il motore AV locale lo scannerizzi.
È in seguito restituito ad altri utenti e quindi può utilizzare il tuo sistema per la diffusione?
Dovresti sicuramente avere qualche forma di scansione AV prima di salvare il file. Si noti che questo potrebbe non essere così semplice, dal momento che si potrebbero archiviare le immagini nel database (ci sono scanner AV che possono essere attivati dall'API per un segmento di memoria, prima che venga salvato nel file) ... In ogni caso, I Sono categoricamente contrario all'esecuzione di scansioni antivirus direttamente sui vostri sistemi attuali. Faresti meglio ad avere una qualche forma di scanner AV gateway, prima che colpisca anche il tuo sistema.
Tuttavia, tieni conto che quando consenti agli utenti casuali di caricare file arbitrari, la pulizia dei virus non è il massimo delle tue preoccupazioni.
- Per esempio, puoi essere sommerso - sia da file enormi, sia da molti più piccoli, quindi eseguendo il server.
- Se l'utente può specificare il percorso del file salvato, potrebbe potenzialmente sovrascrivere i file di sistema o caricare il codice eseguibile.
- Se gli attributi del file vengono salvati e visualizzati successivamente (inclusi nome file e nome utente, ma anche descrizione, tipo di file, posizione, ecc.), questo può portare ad altri attacchi Web standard, come XSS o SQL Injection.
- Fai una ricerca qui per GIFAR - questi sono file che sono sia file di immagine validi, sia file JAR validi (Java Archive - codice eseguibile per il browser). Questi naturalmente non sono un virus ...
- A seconda del sistema, potresti essere a rischio di danni legali, se i tuoi utenti caricano, ad es. immagini protette da copyright, ad es. pornografia infantile. Certo, consulta il tuo avvocato, perché non lo sono.
TL; DR
In breve, accettare caricamenti arbitrari ti porta in un intero casino di potenziali problemi e la scansione antivirus non è la cosa peggiore.