前端配置文件的正确方式?

公司里一些项目是服务于政府单位的,很多小细节的调整不是遵循上线部署流程走的。比如一些文字内容的调整,跳转链接地址的调整。为了满足速度,常常把这些可能频繁变动的信息以全局变量的方式编写在 public 中,不经过打包,方便及时响应及时调整。
比如在 index.html 注入一个 config.js 文件

(function() {
    var config = {
        name: 'segmentfault',
        time: '2023-9-25',
        url: 'https://segmentfault.com/'
    }
    window.config = config
})()

这种方式有一个很大的弊端就是会把很多信息暴露出来。
请问下针对这种频繁变动的信息如何编写配置文件?以及适用大多数场景的最佳配置文件编写方式是怎样的?

阅读 1.2k
avatarAI BotBETA

这种方式确实有一个明显的弊端,即会把敏感信息(如URL、时间等)暴露出来。这可能会导致安全风险,因为任何用户都可以直接查看和修改这些配置信息。

针对这种频繁变动的信息,有几种常见的处理配置文件的方式:

  1. 环境变量(Environment Variables):这是一个非常常见的配置方式,可以在启动脚本中设置环境变量,然后在应用程序中访问这些环境变量。这些环境变量可以包含敏感信息,如数据库密码或API密钥。对于Node.js,你可以使用process.env来访问环境变量。在Docker或Kubernetes中,你可以在部署命令中设置环境变量。
  2. 配置文件:你可以使用JSON或YAML文件来存储配置信息,并且将它们放在你的版本控制系统中。这种方式比直接在代码中硬编码配置信息更好,因为它使得配置信息更难以暴露,更易于修改,并且可以轻易地适用于不同的环境。对于Node.js,你可以使用require来加载JSON或YAML文件作为配置。
  3. 专用的配置管理系统:对于大型应用程序,可能需要一个更复杂的配置管理系统。这可以是一个集成了数据库的服务器,或者是一个可以暴露REST API的第三方服务。这种方式提供了更多的灵活性和强大的功能,例如自动化的配置备份和恢复、权限管理等。

最佳的配置文件编写方式会根据你的特定需求和应用程序的复杂性来定。一般来说,对于大多数场景,使用配置文件是一个好的选择,因为它们易于管理,易于修改,并且可以轻易地在不同的环境中使用。如果安全性是你的主要关注点,那么使用环境变量或专用的配置管理系统可能更加适合。

3 个回答
新手上路,请多包涵

频繁变动的话,一般来说应该将数据存储在数据库,数据库会建立一张表,内容是关于系统配置信息的,通过后端传递给前端。
优点是数据方便管理,扩展性高,安全问题可以通过后端得到解决。
缺点是系统复杂性增加,需要考虑数据库表结构等。读取数据要考虑性能问题。数据库故障会连带着前端报错。

1、最常用的就是打包工具配合环境变量
定义全局环境变量文件,然后将频繁变动的信息根据环境进行区分
JavaScript 脚本内部使用全局环境变量,然后打包工具在构建过程进行变量替换

2、你的要求应该是频繁变动且不经过构建的,应该由后端保存
然后通过接口获取,每次项目初始化进行全局缓存,
至于不想明文传输,可以进行加密约定,然后解码进行获取数据。

政府部门的电脑都是监控,
很多时候这些都是瞎担心,
真的懂这个你也拦不住 ...

最佳实践,苦一苦我们的后端 ..

  • 不放心的话编辑一个映射表控制字段名,用没有业务关系的代号,映射的名字在公司里面流转
  • 不通过前端写配置文件,后端接口给,问题是名字还是能识别,会用的话断到函数里面还是能改
  • 上加密解密?好像也能抄出来
  • 让电脑开摄像头?好像更加容易泄密了 ...
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题