大家 web 开发时,是怎么样保障正式数据库的账号安全的?

2021-03-29 11:19:28 +08:00
 godall
大家开发程序时,程序连接数据库一般怎么保存账号和密码的?

1. 写死在程序里(应该除了大学实习外没人这么干了)
2. 写在配置文件里——明文(很多人都这么用)
3. 写在配置文件里——加密(很多人都这么用)
4. 其他


我感觉 2,3 也都不是很安全啊,大家有什么办法?
8176 次点击
所在节点    程序员
75 条回复
yanzhiling2001
2021-03-29 13:52:56 +08:00
我的是配置文件加密,数据库只放在内网,只允许执行 IP 段访问,数据库内关键字段也是加密的
securityCoding
2021-03-29 13:57:29 +08:00
配置中心,这都被撸了的话那就莫得办法了😂
iyaozhen
2021-03-29 13:58:01 +08:00
楼主意思是内部信息安全。可以用配置中心,配置都是加密的,启动时获取配置。线上线下隔离,即使想去连线上的配置中心代码里面打印也连不上
szuwl
2021-03-29 14:02:03 +08:00
配置中心
Kinnice
2021-03-29 14:31:12 +08:00
CI/CD 的时候自动随机密码。
chenqh
2021-03-29 14:37:26 +08:00
@iyaozhen 这种应该是大公司的那种级别的做法了吧
dzdh
2021-03-29 14:45:14 +08:00
env + 个人独立环境
annielong
2021-03-29 14:49:43 +08:00
一般用到 3 就足够安全了,实际上大多小项目直接用 2
unclemcz
2021-03-29 14:56:16 +08:00
正常情况是存配置文件,加不加密的无所谓了,然后开启数据库访问地址白名单。
bthulu
2021-03-29 15:02:55 +08:00
我司都是密钥库里随机抽一个再加点随机数当密钥, 谁也不知道密钥到底是哪个.
上线的时候, 先启动在线密钥爆破线程, 在一个更大点的密钥库里用随机数进行爆破, 大概半个到一个小时后, 就会爆破到正确密钥, 服务就启动起来了.
SlipStupig
2021-03-29 15:03:22 +08:00
保证账号安全,谈单个点事没有意义的,安全是遵循木桶理论。你觉得你的这些措施很安全,假如你服务器被人偷走,你这些措施都没用了
janxin
2021-03-29 15:38:16 +08:00
这种叫做 Secret Management,具体的放狗搜一下
iyaozhen
2021-03-29 15:42:04 +08:00
@chenqh 嗯 还有更细致的。专门有部门搞这个,属于基建
murmur
2021-03-29 15:47:45 +08:00
有防火墙控制,数据库只能由特殊 IP 访问,而且没有公网权限

然后就是定期的备份了
unco020511
2021-03-29 16:24:56 +08:00
用内网配置中心
opengps
2021-03-29 16:37:07 +08:00
明文链接有网络要求,仅限于内网链接
密文解密是那些公开了数据库公网访问场景下的必然要求

不过说到底,安全问题是个综合结果,不代表锁大门了就安全,窗户,通风口,下水道等等很多地方都得同步做到安全,整个系统才算安全
cco
2021-03-29 16:40:25 +08:00
用 2 足以,搞加密什么的都是皇帝的新衣。
某些人喜欢用公网 IP 的除外。局域网都长得一模一样,泄漏了又如何,某运营商的第三层跳板机里面还装得盗版 navicat 、CRT 呢。
Varobjs
2021-03-29 16:46:22 +08:00
防内部,那就加层 VPN,有账户密码也连不上
dengshen
2021-03-29 16:50:05 +08:00
@bthulu 太秀了吧!发版前也需要爆破密码吗?
yrj
2021-03-29 17:12:55 +08:00
弄个假的配置文件,连上的是蜜罐。
真的放环境变量。
逃:)

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

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

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

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

© 2021 V2EX