Discourse 中隔离插件密钥的策略

您好,Discourse 社区:

我目前正在开发一个 Discourse 插件,并在安全方面遇到了一些特定的挑战。我的插件需要存储和访问敏感数据,我正在探索如何确保这些数据是安全的,特别是防止同一 Discourse 环境中的其他插件访问。

您能否就以下问题提供一些见解或建议:

是否可以隔离一个 Discourse 插件,使其使用的 secrets 文件或敏感数据无法被安装在同一 Discourse 实例上的其他插件读取或访问?如果可以,实现这种安全级别的最佳实践或推荐方法是什么?

我特别感兴趣的是那些允许我在插件内安全地存储和访问加密密钥或类似敏感数据的方法,而不会将其暴露给其他插件或 Discourse 的其他部分。

提前感谢您的帮助和建议!

2 个赞

各位,有人对上面有什么见解吗?

您可以参考这里采用的技术:

但请注意以下警告:Discourse Encrypt (deprecated)

除此之外,我不知道还有其他方法。

当然,作为一个 RoR 应用程序,Discourse 会妥善管理用户授权,因此,例如,您不能以普通用户的身份访问管理员资源。

但是,插件具有管理范围(超出核心初始化阶段),因此您的基本假设必须是插件 可以 访问另一个插件的数据(即使可能性非常小——一个反应插件会将您的数据广播到 Facebook 吗?!我怀疑它不会!! :sweat_smile:

安装者(即人工管理员)有责任审查添加到实例的所有代码,以确保其不滥用任何数据。

如果您规避风险,只需不要安装您不完全理解的第三方插件——只保留核心安装。

但最终,请确保您有高级 RoR 开发人员来审查添加到实例的所有内容?

2 个赞

罗伯特,您好,非常感谢您如此详尽的回复👍我会考虑您发布的内容,非常感谢您的帮助。

3 个赞