2010-04-19 111 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

告訴你的老闆相信他/她的開發者。並告訴他/她向開發者提供良好的薪水。代碼是由開發人員編寫的,所以他們可以重寫自己的代碼。