大型公司里面如何防止程序员接触到核心代码?

2016-06-28 17:29:52 +08:00
 changwei

像 BAT 这类公司,假如我是刚刚入职的程序员,现在公司要我做一个专题模块,做好了要集成测试,这个专题模块要用户登录才能用,那么必须 include 这个 Passport 模块,而这个模块的源代码里面肯定有一些加密算法,私钥等等信息,不能让我们这些小程序员看到里面的代码,那么具体怎么做测试呢?他们如何保证核心业务代码的安全?

21991 次点击
所在节点    程序员
96 条回复
knightdf
2016-06-28 17:33:19 +08:00
那核心代码不是只能老板亲自写了?
Infernalzero
2016-06-28 17:37:12 +08:00
服务化接口,远程调用
hitmanx
2016-06-28 17:37:14 +08:00
瞎说啊。一般的比如可以做成库的形式吧,二进制+API 头文件;一些敏感的怕泄漏出去有人反汇编的可以直接以网络形式提供接口
plantain
2016-06-28 17:37:15 +08:00
私钥一般不写死的,可以配在环境变量里
justfly
2016-06-28 17:38:06 +08:00
为啥登陆要在代码里引入一个模块?

一个服务调用,你只要关注协议,不需要关注实现细节。
changwei
2016-06-28 17:44:24 +08:00
@hitmanx 那像 py , php 这类脚本语言呢?
@justfly 服务调用有的是 RPC ,但很多情况下就是单纯的 include 啊,因为这种大公司框架应该是自己写的,像 Passport 这种关键而且用的最多的模块应该都是写在框架底层里面了吧
@Infernalzero 远程调用,就是类似于 webservice ?
okudayukiko0
2016-06-28 17:48:22 +08:00
PHP 可以加密啊。
learnshare
2016-06-28 17:52:20 +08:00
都是 SDK/API 化的,不会给你什么代码、数据库之类的东西
binux
2016-06-28 17:54:17 +08:00
加密算法看到就看到咯,秘钥开发一套,在部署的时候再加载一套就好了。
而且,如果是用户模块,除了代码,你没有数据库你怎么测试?
chaegumi
2016-06-28 17:55:33 +08:00
围观学习
changwei
2016-06-28 18:18:17 +08:00
@learnshare 像 php , py , perl 之类的脚本语言,除非像 php 可以编译成 opcode ,不然还是能看到代码啊,数据库肯定有测试机上面的数据库,字段,表结构什么的都还是能看到的把。
shiny
2016-06-28 18:24:43 +08:00
development test stage production 环境都不一样吧
dexterlei
2016-06-28 18:26:33 +08:00
这个回答可能有点跑题。
私以为,大型公司的核心财富并不仅仅在于他们的核心代码。组织最重要的组织结构等等,是能让系统运行起来的人,有了一套代码,要发展出与之匹配的生意模式和人员配给同样是大学问,也更加难以在短期内复制出来。而出来做生意,最终是成本和收益,对核心代码之类的保护也只能达到相对的强,没有完全攻破不了的防御,只要你能出得起那个成本。其实只要保证潜在的对手获得这个东西的成本会高于收益,你的东西自然就是安全的。
另外,能问出这个问题,总让人会怀疑有没有居心不良的想象
choury
2016-06-28 18:27:45 +08:00
开发的接触不到线上环境,只能操作测试数据库,运维没有数据库权限, dba 不能接触代码
Zzzzzzzzz
2016-06-28 18:33:04 +08:00
@changwei python 第一次 import 或者调用 compileall 后生成的 pyc 、 pyo 就是字节码, 可以直接交付, 而且 python 可以用 cython 编译成 binary, 这个更好一点, 基本上所有语言的 opcode 只要不做混淆对保护代码都没有什么卵用.
marffin
2016-06-28 18:53:19 +08:00
代码无所谓吧,随便看,不值钱

数据才值钱
yangxiongwei
2016-06-28 18:58:42 +08:00
走 rpc 的
lynnworld
2016-06-28 19:00:57 +08:00
环境变量不同
seki
2016-06-28 19:02:10 +08:00
泄漏代码可以入刑的,大公司的健全的法务团队不会错过这样的完成 kpi 的机会的
intsilence
2016-06-28 19:07:30 +08:00
楼上已经说了,都是 rpc 调用的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/288901

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX