【发布时间】:2017-02-07 16:12:27
【问题描述】:
使用类型安全配置,既可以执行变量替换,也可以直接覆盖键和值:
config {
substitution.required = ${VAR}
should.not.override = "should not be overridden"
}
java -jar executable.jar -Dconfig.should.not.override="This is a security risk"
进行变量替换的能力允许我将应该外部化的配置进行外部化,例如数据库 URL,这将根据部署环境(staging、qa、prod)而有所不同。
但是,如果潜在的黑客使用恶意配置重新启动应用程序,那么彻底覆盖任何内容的能力会带来安全风险。
是否可以允许变量替换但禁止完全覆盖???
【问题讨论】:
标签: security overriding string-substitution typesafe-config