2010-04-19 54 views
3

我的老板给了我一份任务,以查找如何保护.NET开发的基于Web的应用程序。根据我们公司开发的协议产品是公司的资产,甚至非开发人员都可以访问代码。但是我的老板仍然想知道如何保护产品,以防开发者窃取代码并尝试从家中启动它?如何保护应用程序?

请指导如何控制。

+2

所以,只是为了澄清:你的老板是否担心开发人员(你们)窃取源代码并释放产品?或者他担心客户能够对产品进行逆向工程?这听起来像是第一个,但你可能想仔细检查他。 – 2010-04-19 07:55:35

+0

他的conncern是开发者 – haansi 2010-04-19 07:58:20

+1

你在这里是为了获得一个被接受的答案或讨论而获得的少数额外分数吗?除非他们真的满意,否则他接受答案是没有意义的。 – 2010-04-19 08:12:07

回答

12

如果开发商有:

  1. 系统的技术方面是如何团结一致
  2. 什么样的客户真正需要的知识的知识,超越了简单的技术设施

你可以做的事情不多 - 像模糊处理甚至代码保护这样的事情只有在编译器看到代码后才会启动。假设您将允许开发人员在他们的机器上编译完整的端到端代码,那么禁用通常可以防止客户窃取代码的任何东西并不难。

话虽如此,在基于Web的应用程序的情况下,您不会使用类似混淆的东西作为第一道防线机制 - 只能作为(锡箔帽)纵深防御来抵御威胁反编译之后有人泄露了您的网站并为自己获得了您的程序集副本。

最终,这就是为什么保护这样的东西是用法律语言写的,而不是计算机语言。

(顺便说一句,这是一个duplicate of this question which has some great answers - 我遗憾的是重新标记此之后才发现)

+0

+1你完全正确,这是一个法律问题,而不是计算机科学问题。它100%不可能像这样保护你的代码。 – rook 2010-04-19 17:16:58

4

就在我头上......撕掉所有的USB端口,光盘驱动器,并禁用他们的互联网。

0

使用源代码控制软件正确(Visual Studio团队系统有这个内置)。你应该知道谁有代码。

这不会阻止任何人运行代码并分发它,但会使最后检查它的人对其下落负责。

+1

(不是-1er)你能解释一下这将如何防止某人运行代码或向任何人提供任何有用的代码吗? – 2010-04-19 07:58:52

+2

(-1er)使用SCM是一个很好的提示,但它不会帮助代码盗窃 - 根据定义,开发人员需要获取源代码并在本地构建项目(在常见的场景中)。 – 2010-04-19 08:09:32

+1

同意 - 有权访问的人将永远可以拿走它(代码毕竟是文本)。源代码控制可以防止非开发人员获得对代码的访问权限,正如我所说的那样,创建开发人员访问的审计跟踪。 – 2010-04-19 08:15:50

5

如果开发人员将代码逐个部分地存储起来,并在日复一日地在家重新输入它会怎么样?问你的老板,他会怎么做?重置开发者的记忆,就像'黑衣男人'一样?大声笑。收缩对你的老板的态度确实有一个医学术语。

我的建议是这样的:告诉老板让它离开,或雇用他可以信任的其他开发人员。

+1

+1个好方法。你可以在技术上实现一个(相当有限的)防止这种情况的方法,即通过孤立开发人员并只让他们访问其角落的来源。但显然,这种心态不会导致成功的团队,系统或公司...... – 2010-04-19 08:29:39

1

Legalize,那就是你所能做的一切。

3

您无法保护源代码。

任何值得他的盐的开发人员都知道如何重现他写的任何内容。他是制造它的人,所以他可以再做一次。

您唯一能做的就是合法地保护您的产品的专利和版权。

3

告诉你的老板相信他/她的开发者。并告诉他/她向开发者提供良好的薪水。代码是由开发人员编写的,所以他们可以重写自己的代码。