本人新手 不晓得这个mysql数据库配置文件写到哪里、以及怎么写才算安全
目前直接写到一个config.js 里 如
好家伙 这个config.js 别人知道文件名称以及路径的话
直接能访问 看到我的数据库配置
太可怕了
求教一下 好点的法子
这是正确的通用的做法
另外只有设置为static的目录下的文件才能直接访问,不信你试试
大型系统可以搞个 configserver 做鉴权。
肯定不能访问啊,除非你这文件是放在public目录下的吧 要是能访问,你所有代码不都让别人看到了。
服务器目录怎么能让随便访问呢,
@TakWolf 我想知道咋能让node能运行并读取这个里的配置项、但是外界通过路径不能看到访问并且看到这个文件里的内容
@blackjack 哥哥 咋设置啊 目前我通过路径就是可以打开 他就是一个js文件啊
@yjhjstz 系统不大 但是不想把服务器数据库配置项暴露出来
@imhered 这是个js文件啊 浏览器输入这个文件路径 咋样才能访问不到啊
一般的js文件 知道该文件目录了 通过浏览器直接就能访问吧
生产环境不用配置文件 (推荐)
敏感信息作为Shell环境变量: $ APP_DB_USERNAME='xxxxx’ Node直接读这个变量: process.env.APP_DB_USERNAME
生产环境不得不用配置文件
不要版本控制这样的文件 用临时生成的文件 放在服务目录外 设置文件权限到只够APP使用
两种方式都可以用简单脚本自动化。
我的做法是: prod环境使用配置服务,限制内网访问,把pm2的启动json配置在配置服务中,db连接的参数可以配置在参数或env下,加载后使用pm2的start方法启动,参考: pm2 api
{
"script": "app.js",
"env": {
"NODE_ENV": "production",
"PORT":"1339",
"DB_HOST": "<ip>",
"DB_USER":"<username>",
"DB_PWD":"<password>"
}
}
数据库配置处可以这样写:
host:process.env.DB_HOST||'localhost'
非公开的目录是不允许访问的 From Noder
@284099857 只有放在public文件夹下的文件通过浏览器才能访问,即前端所有文件, 你都写mysql配置了,肯定不能放在public文件下吧,也不属于前端文件了。肯定是访问不到的。不信你自己试试
以express为例,默认public下是可以通过路径访问的,其他的都不行
config文件是不能通过url访问的。 上面都说了,只有某个文件夹下的文件作为静态文件可以被url直接访问。
@TakWolf 谢谢
@coffhe 谢谢