雇佣第三方开发者时,可共享哪些配置文件与证书?
关于第三方服务集成时的权限安全,我有过亲身踩坑的经历
我是一名大四计算机科学专业的学生,之前和联合创始人通过Guru平台雇了一位开发者,帮我们做原生iOS和Android的MVP。项目初期,他提出要我们提供Firebase和BrainTree的账户用户名与密码,说要用来完成集成——当时我第一反应就是:这绝对是巨大的安全风险信号!虽然我猜他可能误以为我们不懂技术,但作为参加过不少黑客松、对安全敏感的人,这种要求绝对不能答应。
接下来就聊聊为什么这事儿风险大,以及正确的处理方式:
直接给账户凭据的隐患:
- 像BrainTree这种支付类服务,账户里涉及支付权限和敏感数据,一旦密码泄露,后果不堪设想——资金被盗、用户支付信息泄露都是可能的
- Firebase作为后端服务,所有者权限能修改整个项目的配置、删除数据,给出去等于把整个后端的控制权交出去了
- 最关键的是,你没法追踪对方用账户做了什么,出了问题根本没法界定责任,后续换人的话还得挨个改密码,麻烦得很
安全的权限授予方式才是正道:
- Firebase:直接在Firebase控制台里添加对方为项目成员,分配最小必要权限就行——比如只给他Cloud Firestore的编辑权限、Auth的用户管理权限,绝对不要给所有者权限。这样他能完成集成工作,又没法乱动核心配置
- BrainTree:用API密钥代替账户密码。去BrainTree后台生成受限的API密钥,只开放支付集成需要的权限,然后把密钥通过环境变量的方式传给开发者,绝对不要明文发送
- 不管哪种方式,权限授予之后要记着定期检查,项目做完了及时把对方的权限移除,避免后续风险
额外提醒:
- 哪怕团队里有人技术不太懂,也别因为怕麻烦就妥协给密码。这不仅是安全问题,也能帮你判断开发者的专业度——真正有经验的开发者,肯定知道用安全的权限协作方式,而不是张口就要账户密码
内容的提问来源于stack exchange,提问作者Aaron Levin
相关产品推荐
相关产品推荐

