인라인 원박스가 SiteSetting.onebox_user_agent를 사용하지 않습니다

안녕하세요,

최근 서버에 리소스를 많이 소모하는 AI 크롤러로부터 보호하기 위해 Anubis를 배포했습니다. 이 도구는 브라우저와 유사한 user agent로 전송된 요청에 대해 "Making sure you’re not a bot!"이라는 제목의 정적 페이지를 전송하고, JavaScript 기반의 proof-of-work를 수행한 후 올바른 페이지로 리다이렉트합니다. 이름에 Mozilla가 없는 user agent는 페이지에 직접 접근할 수 있습니다.

현재 discourse의 onebox 링크 미리보기가 깨져 있는데, 인라인 링크에 대해서만 문제가 발생합니다.

서버 로그를 확인해 보니 discourse가 두 가지 유형의 user agent를 전송하고 있습니다:

  • 큰 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 user agent를 사용할 호스트.”*라고 설명되어 있지만, 차이가 없었습니다.

또한 숨겨진 설정인 onebox_user_agent를 변경하는 것도 테스트해 보았지만, 이는 일반 onebox 링크 미리보기의 user agent만 변경할 뿐 인라인 미리보기의 user agent는 변경하지 않았습니다.

이것은 버그로 보입니다. 인라인 링크 미리보기에도 동일한 구성 가능한 Discourse Forum Onebox user agent를 사용하는 것이 더 합리적이지 않을까요?

감사합니다!

1개의 좋아요

onebox에서 두 가지 다른 요청을 보내는 것을 확인했습니다. 하나는 브라우저의 사용자 에이전트를 사용하는 HEAD 요청이고, 다른 하나는 식별 가능한 사용자 에이전트를 사용하는 GET 요청입니다. HEAD 요청이 리디렉션(챌린지 페이지로)되면, 리디렉션된 페이지로 세 개의 요청이 추가로 전송됩니다.

onebox가 작동하려면 챌린지 시스템에서 모든 HEAD 요청을 화이트리스트에 추가해야 합니다. 인라인 onebox뿐 아니라 블록 onebox도 마찬가지입니다.

이것은 버그보다는 기능 요청처럼 보입니다. 인라인 원박스(inline onebox)와 원박스(onebox)는 네트워크를 사용하는 방식이 다른 별개의 기능입니다. 아마도 여기에 별도의 사이트 설정이 필요할 수도 있겠네요.

인라인 원박스를 위한 숨김 설정을 하나 더 추가하는 것에는 문제가 없습니다. 적어도 그렇게 하면 현재 막혀 있는 문제를 해결할 수 있을 것입니다.

이 문제가 해결되었나요? Fedora Discussion에서도 불만이 접수되고 있습니다.

아니요, 우리는 이 항목에 대한 사이트 설정을 추가한 적이 없습니다. 여전히 설정이 필요합니다. 팀에 귀하에게 영향이 미치고 있다는 점을 알리겠습니다.

숨겨진 inline_onebox_user_agent 설정이 포함된 PR이 병합되었습니다. 이를 사용하여 인라인 원박스(inline oneboxes)의 에이전트 헤더를 덮어쓸 수 있습니다.

@osmith, 해당 설정이 인라인 링크와 Anubis 관련 문제를 해결하는지 확인해 주실 수 있을까요?

지금 바로 테스트할 수는 없습니다. 하지만 설명대로 숨겨진 설정이 user-agent를 오버라이드한다면, 인라인 링크와 Anubis 관련 문제를 해결할 수 있을 것입니다. 이 기능을 구현해 주셔서 감사합니다!

1개의 좋아요

이 주제는 4일 후 자동으로 닫혔습니다. 더 이상 새로운 답변을 작성할 수 없습니다.