2008-10-18 9 views
6

Mon application traite des e-mails provenant de différentes sources, par ex. Outlook et les boîtes aux lettres IMAP. Avant de les analyser, je les écris dans le répertoire temporaire (les garder en mémoire n'est pas une option). Pendant l'analyse, il se peut que j'écrive des pièces jointes dans le répertoire temp (par exemple, si elles sont trop volumineuses pour être conservées en mémoire ou pour l'extraction de texte intégral).Les antivirus verrouillent et suppriment les fichiers temporaires - la meilleure façon de les gérer?

Mais dans la nature, deux choses se produisent qui semblait très étrange en premier lieu, mais pourrait tout être retracée au comportement du scanner de virus:

  • Je suis parfois incapable d'ouvrir les fichiers que j'ai Je me suis écrit il y a quelques millisecondes. Ils sont évidemment verrouillés par des antivirus pour s'assurer qu'ils sont propres. J'ai une exception.

  • Si les fichiers sont considérés comme dangereux par le scanner de virus, ils les suppriment à un moment donné.

Pour faire face à ce comportement, j'ai écrit quelques méthodes qui tentent à nouveau si elle est ouverte échoue ou faire des vérifications si les fichiers existent, mais je suis incapable de les utiliser dans toutes les parties de l'application (3 code de fête, par exemple des filtres), donc les choses se sont améliorées, mais pas parfait à 100% et mon code source est moche en partie à cause de ça.

Comment gérez-vous les scanners de virus?

Répondre

1

Ecrivez vos fichiers avec le cryptage. Je pense que vous n'auriez pas besoin de quelque chose de trop délicat ou impliqué. Cryptez ou écrasez également les noms de fichiers car le scanner de virus pourrait également être déclenché.

+0

Une solution pragmatique à considérer. Malheureusement, certains fichiers sont écrits par des bibliothèques tierces incapables d'écrire dans les flux, mais ceux-ci pourraient être traités différemment. Ne résout cependant pas les problèmes avec les antivirus antivol. –

+1

Il existe des moyens de "raccorder" le processus d'écriture de fichier de sorte que même vos bibliothèques tierces écriraient cryptées. Peut-être même laisser les poignées de fichier ouvertes pour éviter de signaler aux antivirus que vous avez fini de travailler avec le fichier. –

-1

Le scanner de virus a des dossiers exclus. Regardez dans la documentation et ajoutez votre dossier temporaire à cette liste.

+0

Il s'agit d'une application rétractable, pas interne. Je pourrais le dire à mes utilisateurs, mais ils l'ignoreraient ou ne le liraient pas du tout. –

0

Vous devez généralement exclure les fichiers de filtrage du courrier de l'analyseur de virus et utiliser un programme anti-virus de messagerie dédié qui se trouve dans la série de tubes de courrier entrant. Pensez à demander à vos utilisateurs de désactiver l'option "supprimer les fichiers infectés" sur leur serveur de messagerie, sinon ils risquent de perdre la base de données de messagerie: - /. Par exemple, voici comment vous pouvez configurer l'AV d'ignorer échange: http://www.sophos.com/support/knowledgebase/article/12214.html Mais une autre façon de regarder est qu'il ya un virus dans le fichier, vous ne voulez probablement pas livrer de toute façon ;-)

Une réponse précédente a dit de changer les permissions de sorte que seul votre processus puisse accéder aux fichiers. Cela ne marchera pas; tout AV digne de ce nom sera exécuté dans le noyau et pourra accéder aux fichiers de toute façon.

4

Si la modification de la configuration du scanner antivirus n'est pas l'option idéale pour vous. Pourriez-vous garder le fichier ouvert depuis sa création jusqu'à la fin de votre processus? Si vous avez un handle sur le fichier, il ne sera pas disponible pour le scanner de virus.

Questions connexes