6

我的应用程序处理来自不同来源的电子邮件,例如 Outlook 和 IMAP 邮箱。在解析它们之前,我将它们写入临时目录(不能将它们保存在内存中)。在解析时,我可能会将附件写入临时目录(例如,如果它们太大而无法保存在内存中或无法提取全文)。

但是在野外,发生了两件事,一开始看起来很奇怪,但都可以追溯到病毒扫描程序的行为:

  • 我有时无法打开几毫秒前自己编写的文件。它们显然被病毒扫描程序锁定以确保它们是干净的。我得到一个例外。

  • 如果文件被病毒扫描程序认为是危险的,它会在某个时间点将其删除。

为了应对这种行为,我编写了一些方法,如果打开失败再试一次,或者检查文件是否存在,但我无法在应用程序的每个部分使用它们(第 3 方代码,例如过滤器) ,所以事情变得更好了,但不是 100% 完美,因此我的源代码部分看起来很丑。

您如何应对病毒扫描程序?

4

4 回答 4

4

如果更改病毒扫描程序配置不是您的理想选择。您能否从创建文件到进程结束保持文件打开?如果您对文件有句柄,则病毒扫描程序将无法使用该文件。

于 2008-10-18T10:46:07.287 回答
1

使用加密编写文件。我认为您不需要任何太棘手或太复杂的事情。还要加密或破坏文件名,因为病毒扫描程序也可能由此触发。

于 2008-10-18T19:15:23.573 回答
0

您通常应该从病毒扫描程序中排除邮件过滤文件,并使用位于传入邮件系列管中的专用邮件防病毒程序。绝对考虑要求您的用户关闭其邮件服务器上的“删除受感染文件”选项,否则他们可能会丢失邮件数据库:-/。例如,您可以通过以下方式配置 AV 以忽略 Exchange: http: //www.sophos.com/support/knowledgebase/article/12214.html 但另一种看待它的方式是文件中有病毒,所以无论如何,您可能都不想交付它;-)

先前的答案说要更改权限,以便只有您的进程才能访问文件。那是行不通的;任何有价值的 AV 都将在内核中运行,并且无论如何都可以访问这些文件。

于 2008-10-18T10:43:03.547 回答
-1

病毒扫描程序有排除文件夹。只需查看文档并将您的临时文件夹添加到此列表中。

于 2008-10-18T10:16:12.230 回答