このプラグインは少し古くなっており、本日(@Arkshine の助けを借りて
)アップグレードされました。プラグインを更新し、本番環境の場合はアプリを再構築するか、アプリケーションを再起動する必要があると思われます。Discourse チームからの指示は次のとおりです。Install plugins on a self-hosted site
アップデートありがとうございます。すべて正常に動作することを確認しました。
皆さん、こんにちは。
この問題の解決にご協力いただけますでしょうか?
デスクトップで黒い画面が表示されます
Discourse - V3.1.3
Uncaught (in promise) Error: Could not find module discourse-i18n imported from discourse/plugins/discourse-topic-trade-buttons/discourse/connectors/topic-above-post-stream/trade-buttons
Uncaught (in promise) Error: Could not find module `discourse-i18n` imported from `discourse/plugins/discourse-topic-trade-buttons/discourse/connectors/topic-above-post-stream/trade-buttons`
at loader.js:247:1
at u (loader.js:258:1)
at a.findDeps (loader.js:168:1)
at u (loader.js:262:1)
at requireModule (loader.js:24:1)
at plugin-connectors.js:57:1
at plugin-connectors.js:45:1
at Array.forEach (<anonymous>)
at b (plugin-connectors.js:40:1)
at plugin-connectors.js:56:1
at plugin-connectors.js:153:1
at plugin-connectors.js:45:1
at Array.forEach (<anonymous>)
at b (plugin-connectors.js:40:1)
at S (plugin-connectors.js:150:1)
at j (plugin-connectors.js:159:1)
at e.renderedConnectorsFor (plugin-connectors.js:164:1)
at get connectors [as connectors] (plugin-outlet.js:126:1)
at Ce (index.js:1251:1)
at reference.js:175:1
at reference.js:136:1
at e.track (validator.js:668:1)
at f (reference.js:135:1)
at index.js:5588:1
at reference.js:136:1
at e.track (validator.js:668:1)
at f (reference.js:135:1)
at index.js:5588:1
at reference.js:136:1
at e.track (validator.js:668:1)
at f (reference.js:135:1)
at reference.js:312:1
at reference.js:136:1
at e.track (validator.js:668:1)
at f (reference.js:135:1)
at Object.evaluate (runtime.js:3440:1)
at Object.evaluate (runtime.js:1052:1)
at It.evaluateSyscall (runtime.js:4263:1)
at It.evaluateInner (runtime.js:4234:1)
at It.evaluateOuter (runtime.js:4227:1)
at Wt.next (runtime.js:5058:1)
at Wt._execute (runtime.js:5045:1)
at Wt.execute (runtime.js:5038:1)
at Qt.sync (runtime.js:5105:1)
at wr.render (index.js:6749:1)
at index.js:7013:1
at Mt (runtime.js:4139:1)
at Tr._renderRoots (index.js:6996:1)
at Tr._renderRootsTransaction (index.js:7039:1)
at Tr._renderRoot (index.js:6985:1)
at Tr._appendDefinition (index.js:6911:1)
at Tr.appendOutletView (index.js:6899:1)
at p.invoke (queue.ts:203:14)
at p.flush (queue.ts:98:13)
at h.flush (deferred-action-queues.ts:75:19)
at $._end (index.ts:616:32)
at _boundAutorunEnd (index.ts:257:12)
こんにちは、ようこそ @viswanatha ![]()
これはトピック「trade-buttons」プラグインに関連しているようですので、適切な担当者の目に留まるよう、関連トピックに投稿を移動しました。![]()
@viswanatha このプラグインを追加した後、プロジェクトを再構築しましたか?
@Janno_Liivak 最後のPRで最近コアに追加されたdiscourse-i18nのインポートが導入されたため、古いDiscourseインストール用のピン留めプラグインとテーマのバージョンに関する Pinning plugin and theme versions for older Discourse installs (.discourse-compatibility) が必要になるかもしれません(10月12日だったと思います)。
私の見たところ、この変更は3.2.0.beta2-dev(9月12日)の後に行われました。
そのため、3.2.0-beta2-devより古いDiscourseバージョンのユーザーは、私のPR(2月22日のもの)より前の最新コミットにロックされることを示すために、.discourse-compatibilityにエントリを追加するのが理にかなっていると思います。
< 3.2.0.beta2-dev 88db827dcecf5faf4e009e38422ede6847488535
セキュリティ脆弱性 ![]()
要約:このプラグインをインストールすると、無効になっている場合でも、トピックにアクセスできるすべての人(匿名ユーザーを含む)に すべての トピックカスタムフィールドが漏洩します。インストールされている他のプラグインによっては、トピックカスタムフィールドに機密データが含まれる可能性があります。
~~クライアントのためにこのプラグインを審査した際、いくつかのセキュリティ上の問題を発見しました。これらの問題は、私たちのフォーク(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 を使用することは不要であり、上記のセキュリティ問題を悪化させます。
プルリクエストがマージされました
私もです。設定できません。
ブラウザの開発者コンソールで非推奨の通知を見つけました。
deprecation-identify-source.js:15 非推奨: [PLUGIN discourse-topic-trade-buttons]
modelプロパティパスがdiscourse/plugins/discourse-topic-trade-buttons/discourse/templates/connectors/topic-above-post-stream/trade-buttons.hbsテンプレートで使用されましたが、thisが使用されていません。このフォールバック動作は非推奨になりました。テンプレートで使用されるすべてのプロパティはthisから検索する必要があります: {{this.model}} [非推奨 ID: ember-this-fallback.this-property-fallback] これは ember-this-fallback n/a で削除されます。詳細については Resolving the `this-property-fallback` deprecation を参照してください。
注意喚起のために共有したかったのですが、自分で修正することはできません。 ![]()
ポルトガル語(ブラジル)に翻訳します。ブラジル出身です。
こんにちは @Anderson_Cardoso_Silva さん!翻訳のプルリクエストを作成していただけますか?
ブラウザログで確認した問題(@Roiさんが指摘したものを含む)と、おかしかった英語のテキストをいくつか修正しました。ローカル開発環境で全てテストしましたが、もし他の人が自分のDiscourseでテストしていただけるとありがたいです。
@Arkshine さん、.discourse-compatibility にこの行を追加しました。ありがとうございます。
セキュリティ脆弱性 
Janno_Liivak様、
この便利なプラグインをありがとうございます!注意が必要な重大なセキュリティ脆弱性を発見しました。
問題点
- 認可チェックなし - どのユーザーでも任意のトピックを販売済み/購入済み/交換済みとしてマークできます。
- バックエンド検証の欠如 - コントローラーは以下を検証しません。
- プラグインが有効か (
topic_trade_buttons_enabled) - カテゴリボタンが有効か (
enable_*_button) - これらの設定はフロントエンドのみがチェックします(安全ではありません)。
- プラグインが有効か (
- 入力検証なし -
topic_idパラメータが検証されていません。 - アクション投稿の作成なし - 操作が記録されず、誰が操作を実行したかの記録がありません。
影響
- 非認可のトピック操作
- 直接のAPI呼び出しによるプラグイン/カテゴリ設定のバイパス
- 取引アクションを実行したユーザーの監査証跡なし
Hi @Janno_Liivak 様
「購入済み」と「販売済み」のラベルが、当社のサイトで突然、簡体字中国語で表示されるようになりました。Discourse 3.6.0.beta2 です。アップデート以外のサイトへの変更は行っていません。
ラベルをトピック/サイトの言語と文字セットに一致させる方法について、何かアイデアはありますか?
また、@lava が言及していたセキュリティ脆弱性の問題は、解決されましたか?
よろしくお願いします!
Gunnar
こんにちは、@Gunnar さん!あなたのサイトではどの言語(および言語コード)を使用していますか?
これらのセキュリティ問題はまだ対処されていません。最近はとても忙しく、自分でDiscourseを使わなくなってしまったので、単純に忘れていました ![]()
しかし、今自分自身にタスクを作成し、すぐにすべてを修正する時間を見つけようと思います。誰かが手伝ってくれるなら、プルリクエストをレビューできて嬉しいです。






