数据库密码写在二十个文件里改一次花半天,抽成单独配置文件一分钟改完

14年前 (2012-07-31)阅读1回复0
genmulu
genmulu
  • 管理员
  • 注册排名1
  • 经验值27950
  • 级别管理员
  • 主题5590
  • 回复0
楼主

新手写网站代码,数据库账号密码、API密钥、邮箱密码全写在PHP代码里,和业务代码混在一起,哪天要换个数据库密码,翻遍整个项目找配置,更可怕的是,你把代码传到公开的Git仓库,所有密钥全泄露了。其实把配置文件单独分出来,维护起来方便,也安全。

首先,所有的敏感配置,比如数据库地址、账号密码、第三方接口的密钥、加密用的盐值,全单独放到一个config.php文件里,业务代码里只引用这个配置文件,不要把密码硬写在业务逻辑里。这样你以后要换数据库密码,只改这一个文件里的一行,不用翻遍整个项目找哪里写了密码。我之前接手一个老项目,数据库密码写在二十多个文件里,改个密码花了半天,后来重构把配置全抽到一个文件里,之后改密码一分钟就搞定。

新手最容易踩的坑,是把配置文件直接放在网站根目录,别人访问你的域名/config.php,直接把整个文件内容输出在浏览器里,所有数据库密码全暴露。配置文件要放在网站根目录的外面,或者在配置文件开头加个安全判断,直接访问这个文件就退出,不让外部访问输出内容。我之前客户的网站,配置文件在根目录,被人扫到,直接把数据库密码看走了,拖库删了所有文章。

还有个坑,配置文件千万别提交到公开的Git仓库,把config.php加到.gitignore里,仓库里只留一个config.sample.php,写着配置项的说明,具体的真实配置文件只存在自己服务器上,不然你把代码传到GitHub,全世界都能看到你的数据库密码。很多新手图省事,直接把带真实密码的配置传到公开仓库,一夜之间服务器就被人拖库了。

项目小的时候,觉得把密码写哪都行,等项目做大了,配置混在代码里,改一次配置翻半天,还容易泄露敏感信息,一开始就把配置抽出来,单独放,维护安全都省心。

本站源码来源于网络收集修改或者交换,甚至可能并非原创,如遇未经考证信息需持审慎态度。若有疑问,可联系本站处理。

本文地址:https://www.genmulu.cn/genmulu/5541.html

0
回帖

数据库密码写在二十个文件里改一次花半天,抽成单独配置文件一分钟改完 期待您的回复!

取消
载入表情清单……
载入颜色清单……
插入网络图片

取消确定

图片上传中
编辑器信息
提示信息