존중하는 마음으로 말씀드리지만, 인터넷에는 수천 개의 Discourse 설치 환경이 있습니다. 저희 호스팅 서비스만 해도 수천 개를 운영 중이며, 자체 호스팅하는 곳도 많지만, 이 문제를 보고하는 곳은 여러분의 인스턴스뿐입니다. 이는 여러분의 문제가 가장 가능성 높은 자체 유발 문제임을 의미합니다.
Discourse 앞에 커스텀 리버스 프록시를 실행 중이시므로, 여기에서 버그를 보고하기 전에 이 프록시를 제거하고 저희가 권장하는 표준 설치 환경으로 전환하는 것부터 시작하시길 권합니다.
제 환경이 커스텀 설정인지, 아니면 Discourse에 기본적으로 포함된 것인지 확신이 서지 않습니다. 둘 다 nginx를 사용하거든요. 다만 Discourse를 제외한 다른 서비스도 호스팅하고 있어서 nginx를 제거하는 것은 불가능합니다. 제 문제인 것 같지만, 제게 이런 일이 생길 수 있다면 다른 사용자들에게도 생길 수 있는 일입니다. 제가 호스팅 중인 다른 소프트웨어에서는 문제가 없습니다. 손을 잡아달라는 것은 아니지만, 다른 부분에서는 아무런 문제가 발견되지 않습니다.
어디를 봐야 할지 다른 통찰을 주실 수 없다면, 혹시 도움을 줄 수 있는 분을 아시는지 궁금합니다. 두 컨테이너와 각각의 호스트 로그를 확인해 봤습니다. 무엇이 잘못되었는지 더 어디를 봐야 할지 모르겠습니다.
지원이 부족한 이유를 이해합니다. 우리는 유료 고객이 아니며, 일부 사용자는 매너가 매우 나쁜 편이기도 합니다. 제가 문제를 일으키는 다른 요인이 있다는 지적에 동의하므로, 당신을 탓하지 않습니다. 다만, 역프록시(revers proxy)가 이 문제의 원인이라고 진심으로 생각하신다면, 이는 심각한 보안 문제가 되지 않나요?
디스코urs의 내부 구조에 대해 제가 모르는 것이 무엇인지 모르지만, 제 생각에는 개발팀이 관심을 가져야 할 사항으로 보입니다.
역프록시(revers proxy)가 어떤 토큰이나 유사한 것을 적절한 방식으로 변조하여 Discourse가 사용자가 다른 사람으로 변경된 것으로 인식하게 만든다면… 그 문제가 역프록시에 있는지 여부가 정말로 중요할까요? 이는 다른 곳에서 악용될 수 있는 취약점을 나타내는 것이 아닐까요?
다시 말하지만, 인증이 어떻게 작동하는지에 대해 제가 모르는 부분이 많다는 것을 알지 못합니다.
비용 증가로 인해 3자 호스팅에서 벗어나게 되었지만, 그 문제를 해결할 다른 방법이 있을 수도 있습니다. 역프록시를 조사해 보겠습니다. 현재는 관리의 편의를 위해 이 컨테이너를 사용하고 있지만, 다른 것을 시도해 볼 수도 있습니다.
그것이 저에게만 발생한다고 말씀하시지만, 반대의 증거는 없습니다. 하지만 이것이 다른 누구에게도 불가능하다는 것을 의미하는 건 아니지 않나요?
Discourse가 기본적으로 제공하는 nginx 설정을 살펴보고, 제가 어디서 잘못하고 있는지 이해할 수 있는지 알아보겠습니다. 조언해 주셔서 감사합니다.
해당 캐싱 구성에 대해 매우 우려스럽습니다. proxy_ignore_headers에 대한 nginx 문서를 완전히 이해하지는 못했지만, 기본적으로 nginx는 Set-Cookie 헤더가 포함된 응답을 캐시하지 않습니다. 해당 구성은 Set-Cookie 헤더가 포함된 응답이 캐시될 수 있도록 이 기본 동작을 변경하는 것으로 보입니다. 만약 이러한 응답이 Set-Cookie 헤더와 함께 캐시되었다가 다른 사용자에게 전달된다면, 이는 사용자의 계정이 전환되는 문제를 일으킬 수 있습니다.
이론적으로는 해당 구성이 미디어 파일에만 적용되어야 하지만, URL의 끝부분(쿼리 파라미터 포함)을 일치시키는 방식은 이를 구현하는 상당히 위험한 방법처럼 보입니다.