关于问题软件公司如何保障源代码不会被外泄?一共有 2 位热心网友为你解答:
【1】、来自网友【科技行者】的最佳回答:
谢谢邀请。防止源代码外泄这是一个常见的需求,不同的公司有不同的做法,包括技术和流程规范等,相关的解决方案有很多。这里介绍一种技术:VDI(虚拟桌面),感兴趣者可以评估一下。
VDI(Virtual Desktop Infrastructure)这里不多做解释,直译就是虚拟桌面基础设施,也是虚拟化技术的一种典型应用,其技术实质是程序运行在后台的服务器端,客户端(使用者的电脑)呈现的只是一个画面,思杰、VMware、深信服等都有这种技术,感兴趣可以自行百度。这种技术一大好处是:源代码集中保存在服务器端,代码根本不在研发人员的电脑中落地,这样可以防止代码被本地病毒等侵袭,还可以防止屏幕拷贝等非法操作;VDI 的另一个好处是,采用这种技术后代码的拷贝、修改等行为都是可审计的,如果有恶意拷贝行为也可以及时发现。
这种技术其实已经存在多年,现在算是比较成熟了,对用户而言面临的挑战主要是成本(一套新架构,服务器、存储、网络成本都可能增加),以及用户体验。尤其是用户体验,因为计算不在本地电脑而是后台服务器,所以开发人员可能感觉反应比较慢。不过,近些年由于超融合的存在,用户体验有了很大改善,目前已经有些大型(过千人)的研发中心采用了这种技术来保护源代码。如果你的源代码的确非常重要,不妨考虑下这种技术。
本答案来自科技行者团队邹大斌
【2】、来自网友【数理土豆饼】的最佳回答:
一。大多数场合 商业发布的软件 都采用 编译型编程语言,典型是,比如 windows 上的 app 可以用 visual c++ 做,软件 从源程序 编译成 可执行程序,安装到 用户电脑上的 是 exe 文件,所以不会泄露源代码。
二。对于一些 行业传统采用 脚本 语言的应用场合,比如 网站 浏览器端 运行的 java script 语言,则在 编程测试完后,发布以前,故意用程序 修改源代码,使其功能不变,但是格式变得混乱,变量名变得难懂,使别人阅读和理解起来非常困难,防止被别人 修改以后 再利用。
三。对内部开发人员的防范。 将一个大型软件的功能 进行 细分,模块化,中间用约定好的 api 进行调用,这样 每个开发人员 只能 看到本模块内部的源程序,其它模块的功能,通过调用库函数实现,这样,即使有开发人员 copy 走部分代码,但是 没有整个项目的源代码,难以修改 再利用。
四。 有部分 场合,一些公司 内部开发电脑没有上网,也没有 usb 等输出接口,这样内部开发人员 没有途径 将 代码 copy 走。不过,这些公司,好多都是笑料,比如以前 android 系统流行以前,好多开发手机系统软件的公司这样搞,人家 android 全部开源,这些公司 这些烂系统代码,白让人人看 都觉得浪费时间,谁有兴趣 copy 了,庸人自扰罢了。