Inline-onebox não usa SiteSetting.onebox_user_agent

Olá,

recentemente implementamos o Anubis em nosso servidor para nos proteger contra rastreadores de IA que consomem muitos recursos. Ele envia uma página estática com o título “Garantindo que você não é um bot!” para requisições enviadas com user agents semelhantes aos de navegadores, realiza uma prova de trabalho em JavaScript e, em seguida, redireciona para a página correta. User agents que não contêm “Mozilla” em seu nome podem acessar a página diretamente.

Agora, as pré-visualizações de links do discourse onebox estão quebradas, mas apenas para links inline.

Analisando os logs do servidor, o discourse envia dois tipos diferentes de user agents:

  • Discourse Forum Onebox v3.4.1 para pré-visualizações de links onebox grandes (veja lib/onebox/helpers.rb#L217-L226 em 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 para pré-visualizações de links inline (veja lib/final_destination.rb#L40 em 03f3e84ce520d375aa1c66bb0e95cc5ed9832776)

Tentei usar “Forçar user agent customizado para hosts” nas configurações de administrador, que afirma “Hosts para os quais usar o user agent onebox customizado em todas as requisições.”, mas isso não fez diferença.

Também testei alterar a configuração oculta onebox_user_agent, mas isso apenas altera o user agent da pré-visualização de link onebox regular, não o inline.

Isso parece um bug para mim, não faria mais sentido usar o mesmo user agent configurável Discourse Forum Onebox para pré-visualizações de links inline também?

Obrigado!

1 curtida

Recebo dois onebox diferentes também, uma solicitação HEAD usando um user-agent de navegador e uma solicitação GET usando um user-agent identificável. Se a solicitação HEAD for redirecionada (para uma página de desafio), três solicitações seguirão, todas para a página redirecionada.

Tenho que colocar na lista de permissões todas as solicitações HEAD em nosso sistema de desafio para que o onebox funcione. Não apenas o inline-onebox, mas também o block onebox.

Isso parece uma solicitação de recurso em vez de um bug. O onebox inline e o onebox são recursos diferentes que usam a rede de maneiras diferentes. Talvez precisemos de outra configuração de site aqui.

Eu não me importo em adicionar outra configuração oculta para oneboxes inline, pelo menos isso irá te desbloquear.