8

开源项目如何做到不泄露配置文件中的密码信息?

 3 years ago
source link: https://www.v2ex.com/t/861312
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

V2EX  ›  程序员

开源项目如何做到不泄露配置文件中的密码信息?

  NipGeihou · 48 分钟前 · 546 次点击

最近因为 JetBrains 的教育许可快过期了,加上 copilot 也开始收费了,但这两个都有一个政策,开源免费,同时因为在用的一个某柚经期记录 app 广告太多,于是我(后端)打算和女友(前端)一起开发并开源一个经期小程序。

那就有一个问题,我怎么才能即上传示例配置文件,又不上传配置文件中自己的一些配置信息,如数据库密码。

类似于若依这个开源项目中 https://github.com/yangzongzhuan/RuoYi-Vue/blob/master/ruoyi-admin/src/main/resources/application-druid.yml 数据库密码写的是password,难道他的开发环境数据库密码就是password吗?

15 条回复    2022-06-22 11:44:42 +08:00
undownding

undownding      46 分钟前

示例配置文件我们这边用的是 .env.defaults ,
线上读取的是 .env ,
.env 加入到 .gitignore 里不进版本控制。
Zerek

Zerek      45 分钟前

.env 文件
msg7086

msg7086      44 分钟前

开发和生产环境密码不是环境变量传入的吗?

还有,你知道 JetBrains 开源许可是只可用于开发开源软件的是吧?如果你在开源项目之外还有别的项目,它们是不能用开源许可证的。
hccsoul

hccsoul      43 分钟前

类似这样
TeMYcZz.png
只提交 git 版本的,里面配置为空或者默认的,dev 版本填实际,开发时候切一下就行
xiaxiaokang

xiaxiaokang      41 分钟前

环境变量才是王道
SimonOne

SimonOne      38 分钟前

环境变量,github 还可以把环境变量加到 Repository secrets 里
jorneyr

jorneyr      30 分钟前

Jasypt 加密。
licoycn

licoycn      30 分钟前

springboot: 在 resources 下创建 application-local.yml ,然后启动加上参数:spring.profiles.active=local
还需要在.gitignore 文件中添加:*-local.yml
NipGeihou

NipGeihou      18 分钟前

@zjb861107 学习了,有一个疑问就是这个环境变量指的是什么呢?是配置系统的环境变量,然后在 spring boot 的配置文件获取系统环境变量吗?
lokamir

lokamir      17 分钟前

配置启动参数就可以了
CrazyRundong

CrazyRundong      16 分钟前 via iPhone

密码用随机生成的 key 对称加密得到密文,之后把密文存进 repo 里,用 GitHub secret 存 key 。部署时在 workflow 里通过 secret 得到 key ,再解密密文得到密码。
qq316107934

qq316107934      16 分钟前

提醒下,Copilot 是流行的开源项目的主要维护者免费。
就算起了一个开源项目,如果不够流行的话也是不免费的。
SenLief

SenLief      14 分钟前

环境变量吧
dotenv
NipGeihou

NipGeihou      13 分钟前

@undownding 我之前的做法类似,不过我配置复制一份去掉敏感信息,然后命名加上.bak ,把真实的配置文件加入.gitignore ,这样别人拉下开的时候,就需要把.bak 那个文件后缀去掉,然后填写配置使用

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK