如何安全上传Java-MySQL CRUD应用至GitHub?是否可分享数据库密码
上传Java+MySQL项目到GitHub时,绝对不能暴露数据库密码
不管你的密码多简单、数据库里只有项目测试数据,都绝对不能直接把包含密码的代码或配置文件传到GitHub——只要公开,任何人都能找到并访问你的数据库,轻则数据被删改,重则被用来搞恶意操作,这种风险完全没必要冒。
给你几个实用的解决办法:
用配置文件分离敏感信息,再通过
.gitignore忽略它
把数据库连接的账号、密码放到单独的配置文件(比如db.properties或者Spring项目的application.properties),然后在项目根目录的.gitignore文件里加上这个文件的路径,让Git自动跳过不上传。
比如.gitignore里加一行:src/main/resources/application.properties上传配置文件模板给其他开发者参考
可以传一个示例配置文件,比如application.properties.example,把敏感内容用占位符替换,比如:jdbc.url=jdbc:mysql://localhost:3306/your_database jdbc.username=root jdbc.password=请替换成你的数据库密码别人用你的项目时,复制这个模板文件重命名成正式配置文件,再填自己的信息就行。
用环境变量读取密码
代码里不要硬写密码,改成读取系统环境变量。比如Java里这么写:String dbPassword = System.getenv("MYSQL_PASSWORD"); // 然后用这个变量建立数据库连接本地运行前,在你的系统里设置好这个环境变量就行,代码里不会留下密码痕迹。
框架项目利用多环境配置(比如Spring Boot)
如果用Spring Boot,可以建application-dev.properties存本地开发的数据库信息,然后在.gitignore里忽略这个文件;线上部署时用环境变量或者配置中心来加载正式的敏感配置,完全不用碰代码里的密码。
内容的提问来源于stack exchange,提问作者Genaro Di Stilio
相关产品推荐
相关产品推荐

