12

Có lẽ cách rõ ràng nhất để bảo vệ tài sản trí tuệ của công ty từ các nhà phát triển riêng của họ có vẻ là Thỏa thuận không tiết lộ của NDA. Hiệu quả của phương pháp này có thể thay đổi, tùy thuộc vào nhiều yếu tố, và đôi khi hoặc một nơi nào đó nó có thể không hoạt động như mong đợi.Bảo vệ mã từ các nhà phát triển riêng của mình

Cách tiếp cận nào khác, ngoài cách tiếp cận hoàn toàn hợp pháp này, tồn tại để bảo vệ mã phần mềm từ những người phát triển nó? Họ có tồn tại không? Liệu nó có ý nghĩa trong thực tế?

Có thể, ví dụ: Team Edition của Visual Studio đã chứa một số tính năng liên quan đến vấn đề này (ví dụ: mức truy cập vào các phần mã, tùy thuộc vào vai trò bên trong nhóm phát triển hoặc điều gì đó tương tự)?

tham khảo về chủ đề này:

Như thống kê cho biết, trung bình, các lập trình viên có xu hướng thay đổi công việc của họ mỗi 3-4 năm.

+3

Từ quan điểm hoàn toàn tò mò tại sao điều này lại cần thiết? Tôi ngay lập tức nghĩ rằng môi trường sẽ hỗn loạn hoặc có một biến cao hơn để có nỗi sợ hãi trên các nhà phát triển ăn cắp mã và đi một nơi khác làm cho "sử dụng tốt" của nó. Bất cứ điều gì ở một mức độ cực cao có lẽ nên áp dụng cho một bằng sáng chế phần mềm. –

+6

nên là cộng đồng wiki – SilentGhost

+7

Heh, lấy bóng để hỏi điều này trên trang web của nhà phát triển :) –

Trả lời

31

Cố gắng xây dựng một nhóm mà bạn có thể tin tưởng.

+0

Tôi đồng ý. Có lẽ công việc tốt nhất mà tôi từng có là trong một công ty mà một nửa số nhà phát triển đã làm việc ở đó trong khoảng một thập kỷ, thậm chí một số lâu hơn nữa. Chính sách tốt đã khiến mọi người ở lại và điều đó khiến cho mã nguồn rất tốt. ("Tôi đã duy trì đứa bé này được hơn mười năm và nó ở trong một hình dạng tốt bởi vì tôi không bao giờ cho phép mã như vậy ở đó. Tôi yêu cầu điều này được làm sạch!") – sbi

1

Tôi biết bạn đã nói ngoài một cách hoàn toàn hợp pháp, nhưng tôi chỉ muốn thêm rằng ngoài pháp lý bạn đã đề cập, đó cũng là Non-Compete. Về cơ bản nói rằng một khi bạn rời khỏi công việc của bạn, bạn sẽ không thể cạnh tranh trong bất kỳ cách nào chống lại chủ nhân cũ của bạn. Ăn cắp mã không phải là hấp dẫn nếu bạn sẽ không thể đặt nó để sử dụng cho một hoặc hai năm.

+0

Ít nhất ở Anh, các điều khoản không cạnh tranh trong hợp đồng lao động có các tiện ích đáng ngờ - các tòa án có xu hướng ưu tiên quyền làm việc của nhân viên. –

+0

Ngay cả ở đây tại Hoa Kỳ, không cạnh tranh phần lớn là dành cho chương trình và một người có nền tảng đạo đức cao sẽ cố gắng tuân theo những gì họ đã ký; "ăn cắp mã", tuy nhiên, LUÔN LUÔN là bất hợp pháp và nên bị trừng phạt. –

+2

Thỏa thuận không cạnh tranh không ngăn người khác bán mã bị đánh cắp cho đối thủ cạnh tranh hậu trường. – doppelfish

5

Nếu thực sự cần thiết, bạn có thể chia ứng dụng trong các ứng dụng con. Mỗi nhóm làm việc trong một ứng dụng và xem tất cả những người khác là "hộp đen". Có lẽ SOA giúp ở đây.

+0

Đây là khía cạnh tích cực duy nhất ý tưởng này có IMO : Đóng gói, dẫn đến mã được mô tả hóa theo mô đun tốt hơn. –

+0

Và nó chắc chắn đòi hỏi nhiều thời gian hơn để xây dựng và phân phối các sản phẩm được phát triển theo cách này. Brooks nói, nhân lên ba. –

+0

@Pavel Shved: tất nhiên. – cherouvim

6

Rất khó có khả năng mã của bạn là tài sản trí tuệ thực sự - đó là kiến ​​thức và quy trình kinh doanh của công ty bạn.

+0

Đồng ý: chỉ một số ít các công ty đầu tư * rằng nhiều mã nguồn chưa được phát hành R & D thực sự mang lại lợi thế cạnh tranh thực sự – ZJR

+0

Tôi vẫn nghe nói về các nhà quản lý sử dụng công ti * Công ty A * cho lợi ích của * Công ty B * * Công ty B * khách hàng yêu cầu và sau đó khởi động họ, nhưng rõ ràng ** loại người này không thực sự bị làm phiền bởi rào chắn pháp lý **. – ZJR

3

Hoặc là xây dựng một nhóm nhà phát triển mà bạn có thể tin tưởng hoặc khóa toàn bộ hệ thống của họ để họ không thể truy cập cổng USB, ổ đĩa CD hoặc ứng dụng thư trên web. Điều duy nhất họ có thể làm là làm việc trên mã và có thể duyệt web. Cũng chỉ cung cấp cho họ quyền truy cập vào mã mà họ chịu trách nhiệm.

Nhưng với tất cả những biện pháp an ninh rất có thể là các nhà phát triển của bạn sẽ ghét làm việc với bạn và tự ý bỏ việc

+2

Tôi biết một anh chàng đã đánh cắp mã từ một môi trường như thế bằng cách chụp hơn 200 bức ảnh của màn hình bằng điện thoại di động của mình ... – CesarGon

+0

Nếu họ có thể duyệt web, luôn có pastebin và những thứ tương tự. – doppelfish

+1

vặn nó, lấy điện thoại của họ đi quá !!! Hoặc bạn chỉ có thể mở –

2

Không có cách nào đơn giản để làm được điều này nếu mã của bạn nằm trong cùng một dự án (ví dụ bạn muốn cho phép truy cập vào một số phần của mã và không phải những phần khác). Tuy nhiên, nếu bạn có các dự án riêng biệt yêu cầu các mức bảo mật khác nhau, có thể cho phép các nhà phát triển chỉ có quyền truy cập mã vào các dự án nhất định và sau đó kéo các bản dựng từ một máy chủ xây dựng chung.

Hãy nhớ rằng việc biên dịch lại các khuôn khổ hoạt động chống lại IL như .NET là tương đối đơn giản, do đó việc ngăn truy cập vào các tệp mã không nhất thiết là một dấu đầu dòng bạc để bảo vệ IP.

33

Cách tiếp cận đầu tiên là buộc các lập trình viên chỉ biết giao diện của các thành phần khác, để mỗi người chỉ có thể ăn cắp một phần nhỏ của toàn bộ phần mềm. Cách tiếp cận này có thể được vay mượn từ sản xuất giày dép. Một công ty xuyên quốc gia, để ngăn chặn ăn cắp bởi các nhân viên, sắp xếp các nhà máy của mình để mỗi nhà máy chỉ sản xuất giày trái hoặc phải. Bạn có thể làm tương tự với mã của bạn: một số lập trình viên chỉ viết dòng với số lẻ, và những người khác - những người có số chẵn; miễn là họ không thể nhìn thấy công việc của nhau! Đôi khi được gọi là "pair programming".

Một số tổ chức buộc nhân viên ký thỏa thuận không cạnh tranh. Đó là loại thỏa thuận ngăn cản các lập trình viên làm việc cho các đối thủ cạnh tranh. Kỹ thuật này là tốt nhất kết hợp với công việc đăng bài như "Tìm kiếm lập trình viên cao cấp với 5 năm kinh nghiệm trong lĩnh vực tương tự".

Để ngăn người lập trình ăn cắp, bạn có thể gây hại cho họ ngay sau khi họ hoàn thành phần mềm. Phương pháp này đã chứng minh rằng nó là hiệu quả nhất và đã được sử dụng trong nhiều thế kỷ. Ví dụ, Nga Tzar Ivan Con mắt bị đốt cháy khủng khiếp của kiến ​​trúc sư đã thiết kế một nhà thờ tuyệt đẹp tại Quảng trường Đỏ, do đó, một trong những thiết kế vẫn là đẹp nhất bao giờ hết. Bạn có thể làm một cái gì đó như thế này để kiến ​​trúc sư của bạn. Tôi nghe nói, Visual Studio mới nhất có chứa một số tính năng ...

Ngày nay, có nhiều nhân văn hơn để thuê những người mù và câm đã mất tay để họ không thể xem mã của bạn để ghi nhớ nó, không thể nói cho ai biết về mã của bạn và không thể nhập lại mã. Ưu điểm là điều này sẽ giúp bạn đối phó với cơ quan lao động ở nước bạn, mà theo dõi sự cân bằng mà nhân viên của bạn không bị phân biệt đối xử.

Và vâng, bài đăng này là một trò đùa châm biếm, điều này chỉ trích ý tưởng về bất kỳ biện pháp ngăn chặn trộm cắp mã nào. Xin lỗi, không thể giúp đăng nó.

+1

+1 để đốt mắt! – PostMan

+0

Cần lưu ý rằng việc mất tay là hoàn toàn cần thiết, nếu không bạn có thể đọc mã bằng màn hình chữ nổi. Và cần lưu ý rằng có thể những cá nhân tài năng sẽ có thể đọc chữ nổi với ngón chân của họ, vì vậy có lẽ bạn cũng cần phải cắt những cái này;) –

15

Làm cách nào để bảo vệ nhà máy điện khỏi bị phá hoại bởi một nhân viên? Làm thế nào để bạn ngăn chặn một võ sĩ quyền Anh từ ném cuộc chiến? Làm thế nào để bạn ngăn chặn một nhà chứa phân phối các clap?

Mối quan tâm của bạn, trong khi hợp lệ, là mối quan tâm chỉ có thể được giải quyết đúng trách nhiệm và trách nhiệm cá nhân trong nhóm của bạn. Bất kỳ tùy chọn nào bạn sử dụng để bảo mật mã chống trộm đều có thể gây hại nhiều hơn lợi ích. Nếu bạn cảm thấy một thành viên trong nhóm không đáng tin cậy, hãy loại bỏ chúng.

+0

Rất tốt. - - –

1

Bạn có thể làm cho chúng phát triển một mô-đun sẽ tách biệt với phần còn lại của ứng dụng. Nếu bạn có một hệ thống kiểu plugin/mô-đun thực hiện điều này sẽ phù hợp. Bạn có thể phát hành API để các nhà phát triển phát triển và chống lại chúng tích hợp với các tệp DLL của bạn chứ không phải mã nguồn.

Mọi người dường như rất quan trọng về điều này nhưng có lý do chính đáng để thực hiện việc này, tức là hợp tác với đối thủ tiềm năng nếu bạn cung cấp cho họ tất cả nguồn của bạn.

4

SVN có khả năng giới hạn người dùng khác nhau vào các thư mục khác nhau, vì vậy bạn có thể chia mã của mình thành các thư viện riêng biệt và chỉ cho phép một số người nhất định quyền truy cập đọc/ghi.

Các tập tin này đang được conf \ authz Đây là một mẫu

[aliases] 
# joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil, Ltd./OU=Research Institute/CN=Joe Average 

[groups] 
# harry_and_sally = harry,sally 
# harry_sally_and_joe = harry,sally,&joe 

[/ 
# [/foo/bar] 
# harry = rw 
# &joe = r 
# * = 

# [repository:/baz/fuz] 
# @harry_and_sally = rw 
# * = r 

Một số tài liệu có thể được tìm thấy 'kiểm soát truy cập mỗi thư mục' here

Dưới

1

Nó có thể đáng giá để chi tiêu một số hoạt động tế bào não trên mô hình kinh doanh mà bạn muốn theo dõi. Nếu giá trị cốt lõi được thể hiện trong mã, giá trị cốt lõi có thể bị đánh cắp bằng cách ăn cắp mã. Tuy nhiên, nếu giá trị cốt lõi của doanh nghiệp của bạn được thể hiện trong một nhóm nhân viên, một số kỹ sư, những người bán hàng khác, nhưng những người khác hỗ trợ khách hàng và khi phần mềm chỉ là mạng giữ cho các doanh nghiệp này hoạt động, thì không có cách nào dễ dàng để ăn cắp giá trị của doanh nghiệp của bạn. Và nếu phần mềm làm bị đánh cắp, kẻ trộm sẽ không thể tận dụng được nó.

Vì vậy, ngoài những gì cherouvim đã nói, hãy xây dựng một nhóm mà bạn không thể tin tưởng, mà là một nhóm là giá trị cốt lõi của doanh nghiệp của bạn.

1

Phát triển phần mềm của bạn theo mô-đun.

Có một mô-đun chung chứa đối tượng chuyển qua lại và các lớp tiện ích hoạt động trên các đối tượng đó.

Yêu cầu mỗi nhóm xây dựng các mô-đun trên đó, mà không cần biết nhiều về các mô-đun khác.

Có một nhóm nhà phát triển đáng tin cậy lập kế hoạch những gì diễn ra trong mỗi mô-đun và nhóm đó cũng thực hiện tích hợp tất cả các mô-đun vào tổng thể.

Cũng có rất nhiều niềm tin vào bất cứ ai chạy máy chủ điều khiển phiên bản của bạn. Trong khi nó ổn định, không một nhà phát triển nào có thể làm tất cả những gì gây hại nhiều; họ không thể xóa tất cả mọi thứ, ví dụ, và bạn sẽ biết chính xác những gì họ đã làm và khi nào nếu nó trở thành một vấn đề.

Các vấn đề liên quan