こんにちは。
最近、リソースを大量に消費するAIクローラーからの保護のために、サーバーにAnubisをデプロイしました。これは、ブラウザのようなユーザーエージェントで送信されたリクエストに対して、「ボットではないことを確認しています!」というタイトルの静的ページを送信し、JavaScriptのプルーフ・オブ・ワークを実行してから、本来のページにリダイレクトします。Mozillaという名前を含まないユーザーエージェントは、直接ページにアクセスできます。
現在、インラインリンクの場合のみ、Discourseのoneboxリンクプレビューが壊れています。
サーバーログを見ると、Discourseは2種類のユーザーエージェントを送信しています。
-
大きなoneboxリンクプレビューの場合:
Discourse Forum Onebox v3.4.1(03f3e84ce520d375aa1c66bb0e95cc5ed9832776のlib/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.15(03f3e84ce520d375aa1c66bb0e95cc5ed9832776のlib/final_destination.rb#L40を参照)
管理設定の「Force custom user agent hosts」を試しましたが、「すべてのリクエストでカスタムoneboxユーザーエージェントを使用するホスト。」と主張しているにもかかわらず、変化はありませんでした。
また、「onebox_user_agent」という非表示設定を変更してみましたが、これは通常のoneboxリンクプレビューのユーザーエージェントを変更するだけで、インラインのものは変更されませんでした。
これはバグのように思えますが、インラインリンクプレビューにも同じ設定可能な「Discourse Forum Onebox」ユーザーエージェントを使用する方が理にかなっているのではないでしょうか?
よろしくお願いします!