Como posso verificar um upload de arquivo recebido (ou um fluxo de dados) em um servidor da Web e banco de dados em busca de vírus/malware?
Eu sei como (usando o excelente Clam) escanear as coisas depois de serem carregadas, mas gostaria de fazer a varredura antes de carregá-las no servidor. Sei que a verificação antes do upload é possível porque já vi isso em alguns sites: eles fazem uma verificação de vírus antes de fazer o upload do arquivo. Como isso é feito?
Minha linha de pensamento atual (provavelmente ingênua) é realmente carregar os arquivos no servidor, armazená-los em um local especial onde apenas um usuário específico/especial tenha acesso e, em seguida, fazer a verificação. Por fim, mova os arquivos digitalizados para o banco de dados. Existe uma maneira melhor?
Um sistema de prevenção de intrusão na camada de rede é uma abordagem, a varredura AV em um proxy (reverso) é outra.
Uma abordagem comum é que você aplica restrições às extensões de nome de arquivo permitidas do lado do cliente antes de aceitar o upload (mas isso dificilmente é à prova de erros e facilmente contornado) e, em seguida, do lado do servidor, uma verificação rápida para verificar se realmente o upload é um arquivo permitido -type e, em seguida, passe por um scanner de vírus antes de armazenar o arquivo em seu local final.