# Inline-onebox 不会使用 SiteSetting.onebox\_user\_agent

**URL:** https://meta.discourse.org/t/inline-onebox-doesnt-use-sitesetting-onebox-user-agent/365105
**Category:** Feature
**Tags:** onebox, pr-welcome
**Created:** [2025年五月7日 09:44 UTC](https://meta.discourse.org/t/inline-onebox-doesnt-use-sitesetting-onebox-user-agent/365105 "2025-05-07T09:44:27Z")
**Posts on this page:** 8
**Page:** 1

<div class="post-metadata">

### Author: ![osmith](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/osmith/32/502068_2.png) [@osmith](https://meta.discourse.org/u/osmith)
#### Post date: [2025年五月7日 09:44 UTC](https://meta.discourse.org/t/inline-onebox-doesnt-use-sitesetting-onebox-user-agent/365105/1 "2025-05-07T09:44:27Z")

</div>

您好，

我们最近在服务器上部署了 [Anubis](https://anubis.techaro.lol/) 来防御资源密集型的 AI 爬虫。它会向带有类浏览器用户代理的请求发送一个静态页面，标题为“正在确认您不是机器人！”然后进行 JavaScript 难度证明，最后重定向到正确的页面。用户代理名称中不包含 Mozilla 的请求可以直接访问页面。

现在，Discourse 的 onebox 链接预览已损坏，但仅限于内联链接。

查看服务器日志，Discourse 发送了两种不同类型的用户代理：

- `Discourse Forum Onebox v3.4.1` 用于大的 onebox 链接预览（请参阅 `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`）

我尝试了管理设置中的“强制自定义用户代理主机”，该设置声称“_用于在 **所有** 请求上使用自定义 onebox 用户代理的主机。_”，但没有起到任何作用。

我也尝试更改了 [`onebox_user_agent`](https://github.com/discourse/discourse/blob/03f3e84ce520d375aa1c66bb0e95cc5ed9832776/config/site_settings.yml#L2590-L2592) 隐藏设置，但这只会更改常规 onebox 链接预览的用户代理，而不会更改内联预览的用户代理。

在我看来，这似乎是一个 bug，难道不应该为内联链接预览也使用相同的可配置的“Discourse Forum Onebox”用户代理吗？

谢谢！

---

<div class="post-metadata">

### Author: ![lilydjwg](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/lilydjwg/32/515838_2.png) [@lilydjwg](https://meta.discourse.org/u/lilydjwg)
#### Post date: [2025年八月31日 03:49 UTC](https://meta.discourse.org/t/inline-onebox-doesnt-use-sitesetting-onebox-user-agent/365105/2 "2025-08-31T03:49:51Z")

</div>

我收到了两个不同的 onebox 请求，一个使用浏览器用户代理的 `HEAD` 请求，以及一个使用可识别用户代理的 `GET` 请求。如果 `HEAD` 请求被重定向（到一个挑战页面），则会跟随三个请求，所有这些请求都指向重定向的页面。

我必须在我们的挑战系统中将所有 `HEAD` 请求列入白名单，才能使 onebox 工作。不仅是内联 onebox，也包括阻止 onebox。

---

<div class="post-metadata">

### Author: ![sam](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sam/32/102149_2.png) [@sam](https://meta.discourse.org/u/sam)
#### Post date: [2025年八月31日 23:25 UTC](https://meta.discourse.org/t/inline-onebox-doesnt-use-sitesetting-onebox-user-agent/365105/3 "2025-08-31T23:25:22Z")

</div>

这感觉更像是功能请求而非错误。内联 onebox 和 onebox 是不同的功能，它们以不同的方式使用网络。也许我们需要另一个站点设置。

我同意至少再添加一个隐藏的内联 onebox 设置，这样可以解除您的阻塞。

---

<div class="post-metadata">

### Author: ![mattdm](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/mattdm/32/216484_2.png) [@mattdm](https://meta.discourse.org/u/mattdm)
#### Post date: [2026年一月26日 18:53 UTC](https://meta.discourse.org/t/inline-onebox-doesnt-use-sitesetting-onebox-user-agent/365105/4 "2026-01-26T18:53:30Z")

</div>

这个问题解决了吗？我们在 Fedora 讨论区也收到了投诉。

---

<div class="post-metadata">

### Author: ![sam](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sam/32/102149_2.png) [@sam](https://meta.discourse.org/u/sam)
#### Post date: [2026年一月27日 06:15 UTC](https://meta.discourse.org/t/inline-onebox-doesnt-use-sitesetting-onebox-user-agent/365105/5 "2026-01-27T06:15:07Z")

</div>

不，我们从未为此添加过站点设置。我们仍然需要一个。将通知团队这对您造成了影响。

---

<div class="post-metadata">

### Author: ![kris.kotlarek](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/kris.kotlarek/32/176919_2.png) [@kris.kotlarek](https://meta.discourse.org/u/kris.kotlarek)
#### Post date: [2026年一月28日 00:42 UTC](https://meta.discourse.org/t/inline-onebox-doesnt-use-sitesetting-onebox-user-agent/365105/7 "2026-01-28T00:42:31Z")

</div>

隐藏了 `inline_onebox_user_agent` 设置的拉取请求（PR）已被合并。您可以使用它来覆盖内联 onebox 的代理（agent）标头。

> <https://github.com/discourse/discourse/pull/37324>
>
> Inline oneboxes use a browser-like user agent by default, which can cause issues… with bot protection services like Anubis that block browser-like requests while allowing bot/crawler user agents through.
> 
> This adds a new hidden site setting \`inline\_onebox\_user\_agent\` that allows configuring a custom user agent for inline onebox requests. When set, this user agent will be used instead of the default browser-like one.

@osmith，您能确认该设置是否解决了内联链接和 Anubis 的问题吗？

---

<div class="post-metadata">

### Author: ![osmith](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/osmith/32/502068_2.png) [@osmith](https://meta.discourse.org/u/osmith)
#### Post date: [2026年一月28日 09:16 UTC](https://meta.discourse.org/t/inline-onebox-doesnt-use-sitesetting-onebox-user-agent/365105/8 "2026-01-28T09:16:50Z")

</div>

我现在无法测试。但是，如果隐藏设置覆盖了用户代理（user-agent）如所述，那么它就解决了内联链接和 Anubis 的问题。感谢您的实施！

---

<div class="post-metadata">

### Author: ![kris.kotlarek](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/kris.kotlarek/32/176919_2.png) [@kris.kotlarek](https://meta.discourse.org/u/kris.kotlarek)
#### Post date: [2026年二月1日 21:00 UTC](https://meta.discourse.org/t/inline-onebox-doesnt-use-sitesetting-onebox-user-agent/365105/9 "2026-02-01T21:00:48Z")

</div>

此主题在 4 天后自动关闭。不再允许新的回复。
