5

有没有办法在开发过程中保护我的代码,这样如果开发人员离开我的公司,他们就无法访问我项目中的文件?

这对于 TFS 尤其重要,因为 TFS 项目在本地下载、缓存并可供离线使用。理想情况下,如果代码没有有效的 Active Directory 用户 ID,则代码将无法读取。

即使这个想法是不可能的,我想了解任何你能想到的实际威慑......

4

7 回答 7

9

您必须向您的开发人员提供某种形式的信任。如果你不能相信他们不会带走源代码,你怎么能相信他们不会在你的系统中建立后门之类的东西呢?

此外,如果他们要编写代码,他们将需要访问它,如果他们可以访问它,他们几乎肯定可以复制它。您可以尝试限制它,但您要提前超越一群人,他们只需要找出您犯的一个错误。此外,公然不信任您的开发人员对您没有任何帮助。

您的代码中是否包含实际的商业机密?如果是这样,您可能需要重新考虑这一点。如果不是,它在别人身上会造成多大的伤害?他们不能合法地使用它,而离开的开发人员通常也能写出类似的东西。

为此,您需要法律保护,而不是技术保护。

于 2010-10-29T21:27:30.687 回答
7

假设他们可以在那里阅读代码并编译它,那么您无能为力(除非您禁止 USB 记忆棒、CR 编写器、扫描他们所有的电子邮件等,即使那样他们也会找到一种方法来解决这个问题) .

将其包含在雇佣合同中,明确表示如果代码出现,将采取法律行动。

(我在过去的生活中遇到过这种情况 - 一位员工确实随身携带了代码。我们知道由于他在执行此操作时犯了一个错误,我们发送了一封来自我们的外行的信,指出他透露的后果代码给其他人。它似乎工作)

于 2010-10-29T20:16:11.797 回答
3

如果您害怕丢失整个代码(而不是员工复制粘贴其中的一部分)......

使用您的源代码管理系统(您有一个,对吗?),您可能有一些钩子,以便当用户获取代码时,其中的一部分是专用于该用户并且是代码所必需的二进制文件正确编译并正确运行...如果您推到极致,那将意味着拥有正确的硬件系统(TPM、硬件密钥...等)。

因此,在您按照 Paul 的建议处理完所有文书工作之后,如果代码在任何地方泄漏,您可以跟踪谁有过错(并且知道这可能会阻止任何人实际尝试)

于 2010-10-29T21:36:56.013 回答
1

这真的不是一个加密问题。但有一个答案。

1)您应该限制开发人员,只允许他们访问完成工作所需的源代码。这是“最小权限访问”的安全主体。如果需要,将库的二进制文件或可执行文件存储在源代码管理中。

2)强制所有开发者签署保密合同。您可以起诉的高级开发人员。因为即时在印度捍卫这份合同比在印第安纳州捍卫它更困难。

于 2010-10-31T04:18:49.243 回答
1

考虑到所有事情......不(特别是如果项目如您提到的那样存储在本地)。如果开发人员可以访问源代码,他们就有能力窃取源代码。IANAL,但是为了阻止这种事情,你需要律师起草一份保密协议 (NDA)并让你的开发人员签署它。

来自 Wikipedia 的 NDA 是:

至少两方之间的法律合同,其中概述了双方出于特定目的希望彼此共享但希望限制第三方访问的机密材料、知识或信息。它是一种合同,双方通过该合同同意不披露该协议所涵盖的信息。

于 2010-10-29T20:14:26.583 回答
0

如果您的应用程序被干净地构建到组件/模块/插件中,您可以在一定程度上降低代码被盗的风险。开发人员只能获得对他们工作的组件的代码访问权限,并为应用程序的其余部分编译代码。当然,我假设窃取整个应用程序而不是少数组件是值得的。

另一方面,您会惊讶于代码本身并不总是像您想的那样有价值。如果代码中没有可以直接转售的敏感 IP,那么您的开发人员是否会重新编译并与您自己的应用程序正面交锋?

于 2010-10-29T21:01:55.563 回答
0

有一些方法可以保护您的整个开发环境,这样程序员就可以保留或拿走他们正在做的事情的纪念品。请访问 www.chaperon-secure.net,了解从安全开发环境到拱形源代码存储库的可能解决方案。

于 2010-10-30T07:25:12.540 回答