代码之家  ›  专栏  ›  技术社区  ›  guerda

颠覆库中的病毒,该怎么办?

  •  16
  • guerda  · 技术社区  · 14 年前

    想象一下以下情况:

    1. 病毒感染的文件已提交到Subversion存储库中。
    2. 在服务器上运行防病毒扫描程序,并扫描Subversion存储库。

    防病毒扫描程序将删除受影响的修订或将其移动到隔离区。结果是一个损坏的存储库。

    如果修订文件是可恢复的(从隔离区),如何解决这个问题?
    我有一些目标要实现:

    1. 不允许从目录中禁用或排除AV。
    2. 病毒感染的文件不得存储在存储库中。
    3. 存储库必须一致且可用。

    这个小问题最好的解决办法是什么?

    4 回复  |  直到 7 年前
        1
  •  16
  •   D'Arcy Rittich    14 年前

    FAQ :

    在一些特殊情况下 可能想销毁所有证据 文件或提交。(也许有人 意外地犯了一个秘密 文档。)这并不容易,因为 颠覆的目的是 永远不要丢失信息。修订是 建立在一棵树上的不变的树 另一个。从中删除修订 历史会造成多米诺骨牌效应, 在随后的所有事件中制造混乱 修订并可能失效 所有工作副本。

    然而,该项目有计划 总有一天会实现svnadmin 删除命令 永久完成 正在删除信息。(见 issue 516 )

    同时,你唯一的办法是 到svnadmin转储存储库,然后 通过管道传输转储文件 svndumpfilter(不包括坏路径) 输入svnadmin加载命令。见 chapter 5 为 有关此的详细信息。

        2
  •  3
  •   ircmaxell    14 年前

    最容易?在使用病毒提交之前从备份还原…

        3
  •  0
  •   Martin Beckett    14 年前

    如果您以文件模式(每个源文件一个repo文件)创建了存储库,那么您可能可以修复/编辑/替换受感染的文件。
    如果您在DB模式下创建了它,那么就更难了—您可以svndump,然后svncreate一个新的repo,但是从病毒扫描中排除svn存储库可能更容易。

        4
  •  0
  •   Петър Петров    7 年前

    “不允许从目录中禁用或排除AV。”

    与您的IT部门打交道,将您的回购添加到排除项中。最好,如果AV支持“仅提供信息的模式”,那么就让它在仅提供信息的模式下与您的Repo一起工作。大多数时候,这种老病毒只是假阳性。向病毒扫描任何文件添加预提交挂钩,如果提交被病毒标记,则拒绝提交。

    如果AV报告旧文件被感染,请检查是否为假阳性。如果它不是,并且文件是真正的老病毒,只需提交它的删除并忽略它在您的历史中的存在。