Discourseにおけるプラグインシークレットの分離戦略

こんにちは、Discourse コミュニティの皆様、

現在、Discourse のプラグインを開発しており、セキュリティに関する特定の課題に直面しています。私のプラグインでは機密データを保存およびアクセスする必要がありますが、特に同じ Discourse 環境の他のプラグインからのアクセスを防ぎ、このデータが安全であることを確認する方法を模索しています。

以下の質問について、洞察や推奨事項を提供していただけますでしょうか。

私のプラグインで使用するシークレットファイルや機密データを、同じ Discourse インスタンスにインストールされている他のプラグインが読み取ったりアクセスしたりできないように、Discourse プラグインを分離することは可能でしょうか。もし可能であれば、このレベルのセキュリティを達成するためのベストプラクティスや推奨されるアプローチは何でしょうか。

特に、暗号化キーや同様の機密データを、他のプラグインや Discourse システムの他の部分に公開することなく、プラグイン内で安全に保存およびアクセスする方法に興味があります。

ご支援とご提案を事前にありがとうございます!

「いいね!」 2

皆さん、何か上記についてご存知の方はいらっしゃいますか?

ここで採用されているテクニックを確認できます。

ただし、注意点があります。 Discourse Encrypt (deprecated)

それ以外は、私は何も知りません。

もちろん、RoRアプリとして、Discourseはユーザー認証を適切に管理しているため、たとえば通常のユーザーとして管理者リソースにアクセスすることはできません。

しかし、プラグインには管理スコープ(コア初期化ステージを超えた)があるため、プラグインが別のプラグインのデータにアクセスできるという基本的な前提が必要です(非常に可能性は低いですが、リアクションプラグインがFacebookにデータをブロードキャストするでしょうか?!私はそうは思いません!!:sweat_smile:)。

インスタンスに追加されるコードが悪用されないように、すべてのコードを検証する責任は、インストール担当者(つまり、人間の管理者)にあります。

リスク回避型の場合は、完全に理解していないサードパーティプラグインをインストールしないでください。コアインストールのみを使用してください。

しかし、最終的には、インスタンスに追加されているすべてのものをレビューするために、経験豊富なRoR開発者をスタッフに配置することを確認してください。

「いいね!」 2

ロバートさん、非常に丁寧なご回答ありがとうございます👍 投稿いただいた内容を参考にさせていただきます。ご協力に大変感謝いたします。

「いいね!」 3