如何限制客户端可见的解析配置参数?
How to restrict parse config parameter visible to clients?
是否有任何方法可以删除客户端(Android、iOS)通过 ParseConfig.getInBackground(...)
接收的某些 ParseConfig
参数?
想法是某些配置参数在云代码中的服务器端使用,不应该对客户端可见,而其他参数用于配置客户端。
- 要在您的云代码中拥有最新的设置,您需要每次都调用
Parse.Config.get()
,但 Parse.Config.get()
的主要行为是检索所有配置对象,它不是确实是一个优化的解决方案。
Parse.Config
旨在成为一种简单、快速和轻量级的解决方案,用于获取客户端配置(public 数据)。如果您需要存储 sensitive
配置,将 public 和敏感数据存储在同一位置并不是一个好主意。
针对您的用例的建议
// Not optimized: The full config is pulled from DB
const config = await Parse.Config.get()
// Not tested: Optimized and secure, (name field should be indexed), InternalConfig need to be protected by CLP
const getInternalConfig = async (...args) => {
const config = {}
(await (new Parse.Query('InternalConfig'))
.containedIn('name', args)
.find({useMasterKey: true}))
.forEach(result => config[result.get("name")] = config[result.get("value")]
return config
}
const optimizedConfig = await getInternalConfig("parameter1", "parameter4" )
此后已通过允许将单个 Parse Config 参数限制为只能使用主密钥访问来解决。
参见https://github.com/parse-community/parse-server/issues/5930。
是否有任何方法可以删除客户端(Android、iOS)通过 ParseConfig.getInBackground(...)
接收的某些 ParseConfig
参数?
想法是某些配置参数在云代码中的服务器端使用,不应该对客户端可见,而其他参数用于配置客户端。
- 要在您的云代码中拥有最新的设置,您需要每次都调用
Parse.Config.get()
,但Parse.Config.get()
的主要行为是检索所有配置对象,它不是确实是一个优化的解决方案。 Parse.Config
旨在成为一种简单、快速和轻量级的解决方案,用于获取客户端配置(public 数据)。如果您需要存储sensitive
配置,将 public 和敏感数据存储在同一位置并不是一个好主意。
针对您的用例的建议
// Not optimized: The full config is pulled from DB
const config = await Parse.Config.get()
// Not tested: Optimized and secure, (name field should be indexed), InternalConfig need to be protected by CLP
const getInternalConfig = async (...args) => {
const config = {}
(await (new Parse.Query('InternalConfig'))
.containedIn('name', args)
.find({useMasterKey: true}))
.forEach(result => config[result.get("name")] = config[result.get("value")]
return config
}
const optimizedConfig = await getInternalConfig("parameter1", "parameter4" )
此后已通过允许将单个 Parse Config 参数限制为只能使用主密钥访问来解决。
参见https://github.com/parse-community/parse-server/issues/5930。