Inline-onebox は SiteSetting.onebox_user_agent を使用していません

こんにちは。

最近、リソースを大量に消費するAIクローラーからの保護のために、サーバーにAnubisをデプロイしました。これは、ブラウザのようなユーザーエージェントで送信されたリクエストに対して、「ボットではないことを確認しています!」というタイトルの静的ページを送信し、JavaScriptのプルーフ・オブ・ワークを実行してから、本来のページにリダイレクトします。Mozillaという名前を含まないユーザーエージェントは、直接ページにアクセスできます。

現在、インラインリンクの場合のみ、Discourseのoneboxリンクプレビューが壊れています。

サーバーログを見ると、Discourseは2種類のユーザーエージェントを送信しています。

  • 大きなoneboxリンクプレビューの場合:Discourse Forum Onebox v3.4.103f3e84ce520d375aa1c66bb0e95cc5ed9832776lib/onebox/helpers.rb#L217-L226を参照)

  • インラインリンクプレビューの場合:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0 Safari/605.1.1503f3e84ce520d375aa1c66bb0e95cc5ed9832776lib/final_destination.rb#L40を参照)

管理設定の「Force custom user agent hosts」を試しましたが、「すべてのリクエストでカスタムoneboxユーザーエージェントを使用するホスト。」と主張しているにもかかわらず、変化はありませんでした。

また、「onebox_user_agent」という非表示設定を変更してみましたが、これは通常のoneboxリンクプレビューのユーザーエージェントを変更するだけで、インラインのものは変更されませんでした。

これはバグのように思えますが、インラインリンクプレビューにも同じ設定可能な「Discourse Forum Onebox」ユーザーエージェントを使用する方が理にかなっているのではないでしょうか?

よろしくお願いします!

「いいね!」 1

ブラウザのユーザーエージェントを使用した HEAD リクエストと、識別可能なユーザーエージェントを使用した GET リクエストの 2 つの異なるワンボックスも取得します。HEAD リクエストがリダイレクトされる (チャレンジページに) 場合、それに続いて 3 つのリクエストすべてがリダイレクトされたページに対して行われます。

ワンボックスを機能させるには、チャレンジシステムですべての HEAD リクエストをホワイトリストに登録する必要があります。インラインワンボックスだけでなく、ブロックワンボックスも対象となります。

これはバグというより機能リクエストのように感じます。インラインoneboxとoneboxは、ネットワークを異なる方法で使用する別個の機能です。ここにもう一つサイト設定が必要かもしれません。

少なくともインラインonebox用の非表示設定をもう一つ追加することには賛成です。そうすれば、あなたの作業を進めることができます。