有什么解决方案防止程序开发人员将源代码私自复制,避免知识产权泄露?
看了下答案,还没发现有一个回答是给出正确解决方案的,没有一个答案是思路正确的。
问题提出者,应当清楚什么情况下代码才可以私自复制?那就是代码可以保存到电脑的本地磁盘。
只要代码或者资料可以保存在电脑的本地磁盘,从技术上讲,就无法避免资料代码的私自复制,因为对于写代码的人来说,什么模块设计,什么黑盒白盒,什么禁用USB接口,这些方法都没有办法,因为写代码的人如果连怎么可以使资料分发,怎么在A处访问B处的资源,怎么从纷繁复杂的资料中整理有效内容为自己所用这些基本的事情都想不到,那还写什么代码。
根据以上分析,如果要阻止资料代码随便私自复制,就要阻止代码等数据保存到电脑本地,虚拟桌面是一种不错的方案,虚拟桌面的意思大体就是类似服务器的远程登陆且文件无法复制到本地,所以每次访问电脑上的任何资源都市通过虚拟桌面登陆然后使用系统。
需要注意的是,没有任何一种单一的技术可以解决所有的问题,虚拟桌面可以防止代码资料保存到本地,但是无法限制资料被上传代码托管服务器,所以还需要网络的过滤与监控,这是另外一个复杂的问题。
大部分的代码离开业务是没有任何价值的,核心代码普通码农是接触不到的,所以要考虑千方百计阻止代码随便私自复制目的是什么?github上的代码那么多,你们项目的代码质量比github高多少?与其想法设法组织代码私自被复制还不如想办法使业务分块实现,尽可能减少核心业务流程掌握人数就好了。
说这话的好像没啥脑子,代码又不是实体财产,植生于程序员脑子中,靠保密是没用的,而且说实话,代码有用的也就那么几段,或者只是一种思路,大部分都是绿叶,如何保密得了?
因此说,首先是留住关键人,代码世界里,胜者为王,王走了,代码也就是个死物,不更新很快就脱离时代了。
作为管理者,必须保证代码不能只有一个人懂,一个人改,这样程序员离职时才不会被动!
对于大型程序代码,最好编制大纲,划分成几个部分,设置固定接口数据,这样也能起到保护的作用!
至于保证,某些公司上下班搜身这类保密手法,对真正的程序员是没用的!
有什么解决方案防止程序开发人员将源代码私自复制,避免知识产权泄露?
大的公司,一般是采用这样的方法:
1、代码存放在专用的服务器上,并且有严格的权限管理,禁止将代码复制到本地机器。服务器的访问都有严格的权限,一般的代码工作人员只能访问有授权的区域,并且所有操作都记录在案。
2、开发人员有严格分工,一线人员只接触与自己有关的模块,接触别的区域需要报批。
3、就职的时候有保密协议,泄露职业机密会承担高额的违约金。离职也有保密协议,泄露代码也会承担高额的违约金。这样的条款,在法治健全的环境当中,约束力是相当高的。
小的公司,因为条件有限,能采用的可靠方法很少,只能采用一些貌似有效实际无用的办法,例如禁用usb等等。
想要防止开发人员私自复制源代码,这个操作起来比较困难。可以设立保密制度进行秘保密分级管理,规定哪些源代码只能哪些人接触,这只是从制度上进行初步规范管理。当然直接开发人员肯定避免不了接触,对于核心技术人员,要签订特别保密协议,特别约定,争取能够通过协议约定的方式,起到一定的威慑作用。当然,我觉得最直接的方法还是把企业的知识产权第一时间申请保护,千万不能拖,而且一定要申请软著登记的同时申请专利保护,这样就算开发人员离职了去了别的公司,技术我们还是享有专有权。
高手的话不用考你代码,在公司里看下你的业务逻辑,回去分分钟就写出来了。再说现在的大多数公司的代码也没什么学习的价值,脱离了业务环境纯代码没太大用处。如果是真正的高科技公司,有核心技术和算法专利的,估计不会在这里问方案了。
小公司基本没办法
小公司一个人工作基本设计到所有模具块,所以基本人手一套程序。
加密都是没用的,因为加密设置的也是公司程序员呀。
大公司就有的是办法了,模块化开发,一个人只开发一个模块下面的一个小子模块,掌握的源代码也只有这个模具块的部分。而且模具块脱离了其他模具块的接口就使用不了。
另外就是从监管上,法律法规上管理了。
其实像我们公司的程序,都是围绕我们的工作岗位,工作流程开发的。即使是我,服务器,代码都是我管理的,系统也是我架构的,离开了这个公司这份代码一文不值。最多作为一个项目简历。虽然功能强大,但脱离了业务根本就没用处[大笑][大笑]