產品源代碼,對于研發型企業來說,十分重要。源碼是核心競爭力,是企業的基礎命脈。
現實中,源碼泄漏的情況不少,有的是因為意外不慎造成、有的是因為企業員工有意竊取。
源碼一旦泄漏,往往后果嚴重。
企業通常也都有源碼安全意識,如:
簽保密協議:但此心理威懾防君子難防小人,而且是事后懲罰性的防范,難有實質效果。
權限管理:如使用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代碼可以進行混淆加密,理論而言,支持混淆加密的代碼,都可以使用此種方法。