产品源代码,对于研发型企业来说,十分重要。源码是核心竞争力,是企业的基础命脉。
现实中,源码泄漏的情况不少,有的是因为意外不慎造成、有的是因为企业员工有意窃取。
源码一旦泄漏,往往后果严重。
企业通常也都有源码安全意识,如:
签保密协议:但此心理威慑防君子难防小人,而且是事后惩罚性的防范,难有实质效果。
权限管理:如使用SVN,权限管理确实可以使不同的人员只能看到不同的级别的代码,但如果权限设置过于严格,则影响开发效率、工作协同;宽松的话,又难以起到源码的保护效果。而且,具备高权限能获得完整源码的人员也还是不可少,风险依然存在。
设备防止:如禁用USB、禁止联网、甚至禁止带手机及相机进入办公区,但这些苛刻的方式容易激起逆反心理、影响员工忠诚度。
本文,分享一种源代码管理方法,是在实践中使用过的,效果不错。
注:本方法适用于JAVAScript代码管理,包括前端代码或NodeJS后端代码。
该方法的大意是:源码加密管理。
具体实施而言,依然也使用版本控制、权限管理。在此基础上,差别以及重点不同是:对要JS源码加密。
举例:
团队中有A、B、C三人。A是公司核心人员,总体负责项目。B、C二人是开发人员,各负责一部分功能代码。B、C开发的代码提交给A(也可以是项目管理软件),A把B、C的代码加密分发(可以用JShaman对JavaScript代码进行混淆加密):然后,B看到的将是C的加密代码、C看到的是B的加密代码。
这样,团队中的开发人员,各人只有自己负责的代码是明文可见的,看到的他人开发的代码都是密文。但不影响使用。如果遇到需要调试的场景,则让相关负责的人员进行调试。
后注:此方法目前在JavaScript项目中应用过,因为JavaScript代码可以进行混淆加密,理论而言,支持混淆加密的代码,都可以使用此种方法。