取引ボタン

:warning: セキュリティ脆弱性 :warning:

要約:このプラグインをインストールすると、無効になっている場合でも、トピックにアクセスできるすべての人(匿名ユーザーを含む)に すべての トピックカスタムフィールドが漏洩します。インストールされている他のプラグインによっては、トピックカスタムフィールドに機密データが含まれる可能性があります。

~~クライアントのためにこのプラグインを審査した際、いくつかのセキュリティ上の問題を発見しました。これらの問題は、私たちのフォーク(https://github.com/communiteq/discourse-topic-trade-buttons/tree/master)で修正し、プルリクエストを作成しました。しかし、トピックの作成者は私たちのプルリクエストやプライベートメッセージに返信していないため、これらの問題を公開することにしました。~~

セキュリティ修正:情報漏洩

すべてのカスタムフィールド(他のプラグインからのものを含む!)がシリアライズされており、匿名ユーザーにも漏洩しています。カスタムフィールドには機密データが含まれる可能性があり、決してそのようにシリアライズされるべきではありません。

sold_atなどの値は anyway サーバーサイドで設定され、ボタンは topic.archived で「計算」されるため、カスタムフィールドロジックはフロントエンドのユーザー向けコードから削除でき、カスタムフィールドは管理インターフェースが機能するためにのみシリアライズすればよいため、シリアライズは管理者ユーザーに限定できます。これすらも必要ないのではないかと疑っています。

初期化修正

シリアライズロジックを囲む if SiteSetting.topic_trade_buttons_enabled チェックにより、プラグインを有効または無効にした後にDiscourseを再起動する必要があります。このチェックは、Discourseがすでに処理しているため不要です。
respect_plugin_enabled: false を使用することは不要であり、上記のセキュリティ問題を悪化させます。

「いいね!」 7