Inline-onebox n'utilise pas SiteSetting.onebox_user_agent

Bonjour,

nous avons récemment déployé Anubis sur notre serveur pour nous protéger contre les robots d’IA gourmands en ressources. Il envoie une page statique avec le titre « Vérification que vous n’êtes pas un robot ! » aux requêtes envoyées avec des agents utilisateurs similaires à ceux des navigateurs, effectue une preuve de travail JavaScript, puis redirige vers la page appropriée. Les agents utilisateurs qui n’ont pas « Mozilla » dans leur nom peuvent accéder directement à la page.

Maintenant, les aperçus de liens onebox de Discourse sont cassés, mais uniquement pour les liens inline.

En examinant les journaux du serveur, Discourse envoie deux types d’agents utilisateurs différents :

  • Discourse Forum Onebox v3.4.1 pour les grands aperçus de liens onebox (voir lib/onebox/helpers.rb#L217-L226 dans 03f3e84ce520d375aa1c66bb0e95cc5ed9832776)

  • 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 pour les aperçus de liens inline (voir lib/final_destination.rb#L40 dans 03f3e84ce520d375aa1c66bb0e95cc5ed9832776)

J’ai essayé « Forcer l’agent utilisateur onebox personnalisé pour certains hôtes » dans les paramètres d’administration, ce qui prétend que « Les hôtes pour lesquels utiliser l’agent utilisateur onebox personnalisé sur toutes les requêtes. », mais cela n’a fait aucune différence.

J’ai également testé la modification du paramètre caché onebox_user_agent, mais cela ne change que l’agent utilisateur de l’aperçu de lien onebox régulier, pas celui des liens inline.

Cela ressemble à un bug, ne serait-il pas plus logique d’utiliser le même agent utilisateur configurable Discourse Forum Onebox pour les aperçus de liens inline également ?

Merci !

1 « J'aime »

J’obtiens également deux onebox différents, une requête HEAD utilisant un user-agent de navigateur et une requête GET utilisant un user-agent identifiable. Si la requête HEAD est redirigée (vers une page de défi), trois requêtes suivent, toutes vers la page redirigée.

Je dois autoriser toutes les requêtes HEAD dans notre système de défi pour que onebox fonctionne. Pas seulement inline-onebox, mais aussi block onebox.

Cela ressemble plus à une demande de fonctionnalité qu’à un bug. Les onebox en ligne et les onebox sont des fonctionnalités différentes qui utilisent le réseau de différentes manières. Peut-être avons-nous besoin d’un autre paramètre de site ici.

Cela me convient d’ajouter un autre paramètre caché pour les onebox en ligne, au moins cela vous débloquera.