V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
RangerWolf
V2EX  ›  问与答

想问看大家是如何安全的存储 Web 项目的数据库密码?

  •  
  •   RangerWolf · 2016-06-18 13:52:59 +08:00 · 4012 次点击
    这是一个创建于 3109 天前的主题,其中的信息可能已经有所发展或是发生改变。
    目前是存放在配置文件之中。 因为代码会托管到第三方的 git 服务,所以线上数据库的配置文件跟本地是不一样的。需要手动上去替换。

    首先感觉这种方式麻烦了点,因为是 tomcat 的项目,每次更新 war 包之后都得重做一遍。
    另外目前并不知道用哪种加密存储密码好一点? 数据库密码是明文存储~
    16 条回复    2016-06-19 13:03:28 +08:00
    3dwelcome
        1
    3dwelcome  
       2016-06-18 14:06:37 +08:00 via Android
    最好是编译进二进制库里、我 mysql 数据库密码只是简单 round 一下、保证不是明文储存就可以了、防君子不防有心人。
    bdbai
        2
    bdbai  
       2016-06-18 14:34:32 +08:00 via Android   ❤️ 1
    用环境变量,代码动态读取。
    SoloCompany
        3
    SoloCompany  
       2016-06-18 15:14:21 +08:00 via iPhone   ❤️ 1
    配置和代码分开,代码托管给第三方,配置用自己维护的 vcs 或不 vcs
    RangerWolf
        4
    RangerWolf  
    OP
       2016-06-18 15:31:02 +08:00
    @3dwelcome 不太明确你的意思, 能举个例子吗? 谢谢
    RangerWolf
        5
    RangerWolf  
    OP
       2016-06-18 15:31:38 +08:00
    @bdbai 你这个方法感觉还不错~ 只不过加密部分呢? 还是明文存储吗?
    jarlyyn
        6
    jarlyyn  
       2016-06-18 15:38:46 +08:00 via Android
    不放心的话,不要用第三方 git 不就好了
    bdbai
        7
    bdbai  
       2016-06-18 16:12:11 +08:00 via Android   ❤️ 1
    @RangerWolf 我用 Docker 部署应用就是这样处理的。只要环境变量不直接暴露出来,并保证外界无法直接接触数据库,基本上没问题。
    密码最好不要明文,可以用一些相对耗时的加密算法保证即便被脱裤也不会泄露明文。关键词 bcrypt
    xiaoding
        8
    xiaoding  
       2016-06-18 17:27:30 +08:00
    配置文件里面放密文,程序启动的时候通过数据库连接池调用密钥管理系统解密。密钥管理系统负责管理加密算法以及密码的定时更新等等。
    akira
        9
    akira  
       2016-06-18 17:41:27 +08:00
    代码仓库里面不带配置就好了啊
    caixiexin
        10
    caixiexin  
       2016-06-18 20:55:18 +08:00 via Android   ❤️ 1
    1. 用配置中心保存配置,程序每次启动从配置中心读
    2. 用环境变量
    3. 在生产的机子上构建 war ,维护一个分支包含生产配置文件,该分支只推送到生产的机子上
    loading
        11
    loading  
       2016-06-18 20:56:16 +08:00 via Android
    环境变量
    RangerWolf
        12
    RangerWolf  
    OP
       2016-06-19 08:24:31 +08:00
    @xiaoding 太高级了 有推荐的密码管理系统吗? 感谢!
    RangerWolf
        13
    RangerWolf  
    OP
       2016-06-19 08:25:03 +08:00
    @jarlyyn 因为密码而自己维护 git 托管总觉得性价比不太高 哈哈
    RangerWolf
        14
    RangerWolf  
    OP
       2016-06-19 08:25:49 +08:00
    @caixiexin 能介绍一下配置中心吗? 或者有什么推荐的服务或者开源程序,我直接去看看 谢谢
    caixiexin
        15
    caixiexin  
       2016-06-19 08:57:02 +08:00 via Android
    @RangerWolf 简单点的话随便写个 web 服务就行,限制外网访问。
    xiaoding
        16
    xiaoding  
       2016-06-19 13:03:28 +08:00
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   6126 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 55ms · UTC 02:32 · PVG 10:32 · LAX 18:32 · JFK 21:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.