2008-10-18 10 views
6

Meine Anwendung befasst sich mit E-Mails aus verschiedenen Quellen, z. Outlook- und IMAP-Postfächer Bevor ich sie analysiere, schreibe ich sie in das temporäre Verzeichnis (das Speichern im Speicher ist keine Option). Während der Analyse kann ich Anhänge in das temporäre Verzeichnis schreiben (zum Beispiel, wenn sie zu groß sind, um sie im Speicher zu behalten oder zur Volltextextraktion).Virenscanner sperren und löschen temporäre Dateien - der beste Weg, um mit ihnen fertig zu werden?

Aber in der freien Natur, zwei Dinge geschehen, die in erster Linie sehr seltsam schienen aber alles wieder zu Virenscanners Verhalten zurückgeführt werden könnte:

  • ich manchmal nicht in der Lage bin Dateien zu öffnen, die ich habe habe ich vor ein paar Millisekunden geschrieben. Sie werden offensichtlich von Virenscannern gesperrt, um sicherzustellen, dass sie sauber sind. Ich bekomme eine Ausnahme.

  • Wenn Dateien vom Virenscanner als gefährlich eingestuft werden, werden sie zu einem bestimmten Zeitpunkt gelöscht.

mit diesem Problem zu bewältigen, habe ich ein paar Methoden geschrieben habe, die wieder versuchen, wenn offen ausfallen oder einige Prüfungen tun, wenn Dateien vorhanden ist, aber ich bin nicht in der Lage, sie in jedem Teil der Anwendung zu verwenden (3rd Party Code, zum Beispiel Filter), so wurde es besser, aber nicht 100% ig perfekt und mein Quellcode sieht deswegen teilweise hässlich aus.

Wie gehen Sie mit Virenscannern um?

Antwort

1

Schreiben Sie Ihre Dateien mit Verschlüsselung. Ich würde denken, dass Sie nichts zu kompliziert oder involviert brauchen würden. Verschlüsseln oder verfälschen Sie auch die Dateinamen, da der Virenscanner dadurch ebenfalls ausgelöst werden könnte.

+0

Eine pragmatische Lösung, die es wert ist, berücksichtigt zu werden. Leider werden einige Dateien von Bibliotheken von Drittanbietern geschrieben, die nicht in Streams schreiben können, aber diese könnten auf andere Weise behandelt werden. Löst keine Probleme mit Virenscannern, die Dateien sperren. –

+1

Es gibt Möglichkeiten, den Prozess zum Schreiben von Dateien zu "haken", so dass sogar Bibliotheken von Drittanbietern verschlüsselt schreiben. Vielleicht lassen Sie sogar die Dateigriffe offen, um zu vermeiden, dass Sie den Virenscannern signalisieren, dass Sie mit der Datei fertig sind. –

-1

Virenscanner haben Ordner ausschließen. Schauen Sie einfach in die Dokumentation und fügen Sie Ihrer Liste den temporären Ordner hinzu.

+0

Es ist eine Schrumpffolienanwendung, nicht in-house. Ich könnte das meinen Benutzern sagen, aber sie würden es entweder ignorieren oder gar nicht lesen. –

0

Sie sollten die E-Mail-Filterdateien normalerweise vom Virenscanner ausschließen und ein dediziertes E-Mail-Antivirusprogramm verwenden, das in der eingehenden E-Mail-Serie von E-Mails gespeichert ist. Denken Sie in jedem Fall daran, Ihre Benutzer aufzufordern, die Option "infizierte Dateien löschen" auf ihrem Mail-Server zu deaktivieren, da sie sonst die Mail-Datenbank verlieren könnten: - /. Zum Beispiel, hier ist, wie Sie die AV konfigurieren kann Wechsel ignorieren: http://www.sophos.com/support/knowledgebase/article/12214.html aber einen anderen Weg, es zu betrachten ist, dass es ein Virus in der Datei ist, so dass Sie wahrscheinlich nicht wollen, um es liefern sowieso ;-)

Eine vorherige Antwort besagt, dass die Berechtigungen so geändert werden, dass nur Ihr Prozess auf die Dateien zugreifen kann. Das wird nicht funktionieren; Jedes AV, das es wert ist, läuft im Kernel und kann trotzdem auf die Dateien zugreifen.

4

Wenn die Konfiguration eines Virenscanners geändert wird, ist dies nicht die ideale Option für Sie. Können Sie die Datei von der Erstellung bis zum Ende Ihres Prozesses geöffnet halten? Wenn Sie die Datei gelesen haben, ist sie für den Virenscanner nicht verfügbar.