node.js 服务端代码安全问题

2014 年 8 月 27 日
 coinxu

原问题地址在这里:node-js-server-code-security-issue

大概意思就是:

我的服务器需要的一些敏感信息都会加密存储到google drive上,这样不至于服务器被黑后敏感信息泄露。

但是google drive的话client_id和client_secret什么的都写在配置文件里面,服务器被黑了黑客一花点时间读代码就可以自己去从google drive上取这些敏感信息了。

所以我初步思路是在配置文件中使用对称加密对这些配置信息进行加密存储,然后程序启动时在环境变量中设置密钥,这样密钥就不会被暴露了。

这个方法总感觉不靠谱,有点野路子,不知道有没有一些标准的解决方案。

5440 次点击
所在节点    Node.js
23 条回复
TangMonk
2014 年 8 月 27 日
喜欢玩火女?
coinxu
2014 年 8 月 27 日
@TangMonk 严肃点,问答呢。
momo1999
2014 年 8 月 27 日
服务器都能被黑,还有什么安全可以讨论的。
coinxu
2014 年 8 月 27 日
@shuax 服务器被黑不代表所有数据就一定得完蛋好吧,尽可能减小损失。
ptyfork
2014 年 8 月 27 日
这跟node.js有一丁点关系?
ChanneW
2014 年 8 月 27 日
用 java 的那种编译后的程序
ibudao
2014 年 8 月 27 日
@shuax 服务器被黑,不等于不安全。本来就没有绝对安全。个人觉得网络安全的本质是:被人破坏安全体系所花费的"成本" 大于 使用此安全策略所获得的"收益"。所以,做安全,只用尽可能的增加破解难度就可以了,不用保证任何情况下都不会被黑。楼主这个例子,可以在代码上做文章,如:不存储源码,并且不使用debug信息编译等,黑客即使拿到程序也很难反编译并查看到密钥信息。
ibudao
2014 年 8 月 27 日
对于js代码,可以混淆,或者敏感信息是c写。
RIcter
2014 年 8 月 27 日
如果想破解,总会破解出来的,放弃吧。
coinxu
2014 年 8 月 27 日
@ibudao 是的,阁下的思想靠谱。看来楼上几位都得了解下比特币,对提高安全意识很有帮助。
coinxu
2014 年 8 月 27 日
@RIcter 破解是需要时间的,有些时候与黑客斗拼得就是时间。就比如之前某个交易所的比特币被盗,但是因为每个比特币的私钥是采用不同方式的加密存储的,所以黑客想要完全盗取全部比特币,必须花费一定的时间来破解,同样网站站长发现后也可以第一时间从自己的备份信息中将比特币转移到安全地址。
这样将损失减小到最低程度。
ihacku
2014 年 8 月 27 日
wangyongbo
2014 年 8 月 27 日
请问,对称加密使用的密钥存储在哪里?
coinxu
2014 年 8 月 27 日
@wangyongbo 环境变量
coinxu
2014 年 8 月 27 日
@ihacku 感谢,我先了解下。
wangyongbo
2014 年 8 月 27 日
@coinxu 那既然可以黑到服务器,读到配置文件里面的client_id和client_secret,为什么不能读到环境变量呢?
jybox
2014 年 8 月 27 日
这难道不是典型的应用非对称加密的场景么
Comdex
2014 年 8 月 27 日
用golang做服务端
hjc4869
2014 年 8 月 27 日
用Native Code做服务端程序。
VYSE
2014 年 8 月 27 日
密钥放在KEYRING里啊,HACKER得拿到shell提权才能得到,再开个SELINUX

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

https://study.congcong.us/t/130085

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

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

© 2021 V2EX