해당 태그들은 카테고리 설명의 일부입니다. HTML-safe 처리를 적용해 볼 수는 있지만, 이로 인해 취약점이 생기는지는 확실하지 않습니다?
이 흰 화면 상태에서 콘솔에 나타나는 오류는 무엇인가요? 위에 게시된 오류인가요?
죄송합니다, 이 부분에 대해 조금 더 자세히 설명해 주시겠어요? 감사합니다!
해당 태그들은 카테고리 설명의 일부입니다. HTML-safe 처리를 적용해 볼 수는 있지만, 이로 인해 취약점이 생기는지는 확실하지 않습니다?
이 흰 화면 상태에서 콘솔에 나타나는 오류는 무엇인가요? 위에 게시된 오류인가요?
죄송합니다, 이 부분에 대해 조금 더 자세히 설명해 주시겠어요? 감사합니다!
@NateDhaliwal 잘 모르겠습니다! 죄송합니다. 이 오류들이 무엇을 의미하는지, 그리고 해당 페이지와 직접적으로 관련 있는 오류를 어떻게 찾아야 하는지 전혀 모르겠습니다.
다른 컴포넌트들이 이 부분을 어떻게 처리하는지 확인해 보셨나요?
안전할 거라고 추측합니다. 적어도 공식 카테고리 배너 컴포넌트도 별도의 이스케이핑 없이 html-safe를 사용하고 있는 것 같습니다.
참고로, 이것은 새 /admin/config/user-fields.json 경로 대신 구버전 경로를 사용하려는 시도에서 발생하는 문제인 것으로 보입니다.
또한 다음 언급도 있습니다:
그래서 @RGJ 님이 더 잘 아실지도 모르겠네요? ![]()
TL;DR: 아니요. ![]()
긴 버전:
이것은 저희 호스팅에서 사용하는 내부 플러그인입니다(마치 CDCK의 "호스팅 사이트"와 유사합니다). 이 플러그인은 사이트를 호스팅하는 데 필요한 몇 가지 추가 기능을 제공합니다. 이 특정 줄은 멀티사이트의 “not found” 오류를 더 자세한 오류 메시지로 대체하며, 이 메시지는 사이트 소유자가 DNS를 잘못 구성했을 가능성이 있음을 나타냅니다.
이 플러그인은 멀티사이트 미들웨어를 패치하기 때문에, 저희가 호스팅하는 모든 사이트의 모든 요청이 이 플러그인을 거치게 됩니다. 스택 트레이스에서 이 플러그인을 보게 되고, 그 바로 위에 lib/middleware/enforce_hostname.rb라는 줄이 있다면, 이는 정상적인 호출이며 문제의 원인이 아닙니다.
안정 버전(stable branch)을 사용 중이신가요? 업데이트로 인해 플러그인이 안정 버전에서 깨진 것일 수 있습니다. 그렇다면 호환성 파일에 항목을 추가하면 도움이 될 수 있습니다.
@Moin 잘 모르겠는데, 현재 어떤 브랜치에 있는지 어떻게 확인하나요?
네, @jackierenee님은 stable 버전입니다.
Moin이 말한 대로 테마 컴포넌트는 업데이트되었지만 호환성 고정(pinning)이 없었던 것 같습니다. @Rhidian @NateDhaliwal
@RGJ 님, 확인해 주셔서 감사합니다.
그렇다면 이 구성 요소를 다시 사이트에 추가하기 전에 호환성 핀이 적용될 때까지 기다리면 되는 건가요?
이 문제를 hopefully 수정할 수 있는 PR을 작업 중입니다.
네 ![]()
네, 물론입니다.
테마 컴포넌트(Theme Component)가 없으면 카테고리 설명의 텍스트는 기본적으로 --font-up-3입니다. 이는 .category-heading 클래스를 통해 적용됩니다. 최근 이 크기가 커진 것 같습니다.
테마 컴포넌트가 있으면 카테고리 설명의 텍스트는 --font-0입니다. 이 크기는 --font-up-1(더 크게) 또는 font-up-2(가장 크게)로 조정할 수 있습니다. 하지만 이 중 어느 것도 새로운 기본 크기를 충족하지 못합니다.
자, 그러면 이렇게 하면 될까요?
smaller → --font-up-2
normal → --font-up-3
larger → --font-up-4
largest → --font-up-5
Cc: @Rhidian
안녕하세요 @jackierenee, PR을 병합했습니다. 업데이트를 시도해 보시고 정상 작동하는지 확인해 주실 수 있을까요?
@NateDhaliwal 안녕하세요, 방금 업데이트를 시도하고 컴포넌트를 내 사이트에 다시 추가했습니다. 하지만 카테고리 페이지가 여전히 비어 있습니다.
최소 카테고리 박스와 함께 사용하려고 하면 홈페이지도 비어 있습니다.
제가 무언가를 잘못하고 있는 것일 수 있지만, 해결 방법을 모르겠습니다.
이제 사이트 상단에 오류 메시지도 표시됩니다:
한 가지 더, 이 에러 메시지와 관련이 있는 에러 로그라고 생각합니다:
Message (4472 copies reported)
[db6814] ActionController::RoutingError (No route matches [GET] "/admin/customize/user_fields.json")
config/initializers/100-quiet_logger.rb:20:in `call'
config/initializers/100-silence_logger.rb:29:in `call'
lib/middleware/enforce_hostname.rb:24:in `call'
lib/middleware/processing_request.rb:12:in `call'
lib/middleware/request_tracker.rb:385:in `call'
Backtrace
actionpack (7.2.2.1) lib/action_dispatch/middleware/debug_exceptions.rb:35:in `call'
actionpack (7.2.2.1) lib/action_dispatch/middleware/show_exceptions.rb:32:in `call'
logster (2.20.0) lib/logster/middleware/reporter.rb:40:in `call'
railties (7.2.2.1) lib/rails/rack/logger.rb:41:in `call_app'
railties (7.2.2.1) lib/rails/rack/logger.rb:29:in `call'
config/initializers/100-quiet_logger.rb:20:in `call'
config/initializers/100-silence_logger.rb:29:in `call'
actionpack (7.2.2.1) lib/action_dispatch/middleware/request_id.rb:33:in `call'
lib/middleware/enforce_hostname.rb:24:in `call'
plugins/z-communiteq-features/plugin.rb:142:in `call'
rack (2.2.10) lib/rack/method_override.rb:24:in `call'
rack (2.2.10) lib/rack/sendfile.rb:110:in `call'
rack-mini-profiler (3.3.1) lib/mini_profiler.rb:191:in `call'
lib/middleware/processing_request.rb:12:in `call'
message_bus (4.3.8) lib/message_bus/rack/middleware.rb:60:in `call'
lib/middleware/request_tracker.rb:385:in `call'
actionpack (7.2.2.1) lib/action_dispatch/middleware/remote_ip.rb:96:in `call'
rails_multisite (6.1.0) lib/rails_multisite/middleware.rb:26:in `call'
plugins/z-communiteq-features/plugin.rb:168:in `call'
railties (7.2.2.1) lib/rails/engine.rb:535:in `call'
railties (7.2.2.1) lib/rails/railtie.rb:226:in `public_send'
railties (7.2.2.1) lib/rails/railtie.rb:226:in `method_missing'
rack (2.2.10) lib/rack/urlmap.rb:74:in `block in call'
rack (2.2.10) lib/rack/urlmap.rb:58:in `each'
rack (2.2.10) lib/rack/urlmap.rb:58:in `call'
unicorn (6.1.0) lib/unicorn/http_server.rb:634:in `process_client'
unicorn (6.1.0) lib/unicorn/http_server.rb:739:in `worker_loop'
unicorn (6.1.0) lib/unicorn/http_server.rb:547:in `spawn_missing_workers'
unicorn (6.1.0) lib/unicorn/http_server.rb:143:in `start'
unicorn (6.1.0) bin/unicorn:128:in `<top (required)>'
vendor/bundle/ruby/3.3.0/bin/unicorn:25:in `load'
vendor/bundle/ruby/3.3.0/bin/unicorn:25:in `<main>'
Env
HTTP HOSTS: community.eaie.org
감사합니다!
브라우저 콘솔에 오류가 있나요?
현재 사용 중인 Discourse 버전을 공유해 주실 수 있을까요? 이 정보는 /admin 페이지에서 확인할 수 있습니다.
감사합니다!
안녕하세요 @NateDhaliwal, 죄송하지만 브라우저 콘솔에서 발생하는 오류가 정확히 무엇을 의미하는지 잘 모르겠습니다.
제가 현재 실행 중인 Discourse 버전은 다음과 같을 것입니다: Discourse 3.4.6 - GitHub - discourse/discourse: A platform for community discussion. Free, open, simple. · GitHub version 3d149ba8244585f4bcb41db77aa8825e72468bdb
안녕하세요 @NateDhaliwal, 죄송합니다. 제가 알아냈는데, 여기 몇 가지 오류가 있습니다:
Discourse v3.4.6 — https://github.com/discourse/discourse/commits/3d149ba824 — Ember v5.12.0
category-header.gjs:51 Uncaught TypeError: Cannot read properties of undefined (reading 'mobileView')
at get showHeader (category-header.gjs:51:61)
at eE (index.js:78:1)
at index.js:78:1
at index.js:78:1
at X (index.js:78:1)
at T (index.js:78:1)
at index.js:78:1
at index.js:78:1
at X (index.js:78:1)
at T (index.js:78:1)
at Object.evaluate (index.js:78:1)
at Object.evaluate (index.js:78:1)
at tV.evaluateSyscall (index.js:78:1)
at tV.evaluateInner (index.js:78:1)
at tV.evaluateOuter (index.js:78:1)
at t1.next (index.js:78:1)
at t1._execute (index.js:78:1)
at t1.execute (index.js:78:1)
at t2.sync (index.js:78:1)
at t6.render (index.js:78:1)
at index.js:78:1
at tx (index.js:78:1)
at io._renderRoots (index.js:78:1)
at io._renderRootsTransaction (index.js:78:1)
at io._revalidate (index.js:78:1)
at invoke (index.js:78:1)
at m.flush (index.js:78:1)
at g.flush (index.js:78:1)
at V._end (index.js:78:1)
at V.end (index.js:78:1)
at V._run (index.js:78:1)
at V.run (index.js:78:1)
at d (deprecate.js:100:1)
at Object.success (video-placeholder.js:39:1)
at l (jquery.js:10:1)
at Object.fireWith [as resolveWith] (jquery.js:10:1)
at C (jquery.js:10:1)
at XMLHttpRequest.<anonymous> (jquery.js:10:1)이 오류 이해하기
category-header.gjs:51 Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'mobileView')
at get showHeader (category-header.gjs:51:61)
at eE (index.js:78:1)
at index.js:78:1
at index.js:78:1
at X (index.js:78:1)
at T (index.js:78:1)
at index.js:78:1
at index.js:78:1
at X (index.js:78:1)
at T (index.js:78:1)
at Object.evaluate (index.js:78:1)
at Object.evaluate (index.js:78:1)
at tV.evaluateSyscall (index.js:78:1)
at tV.evaluateInner (index.js:78:1)
at tV.evaluateOuter (index.js:78:1)
at t1.next (index.js:78:1)
at t1._execute (index.js:78:1)
at t1.execute (index.js:78:1)
at t2.sync (index.js:78:1)
at t6.render (index.js:78:1)
at index.js:78:1
at tx (index.js:78:1)
at io._renderRoots (index.js:78:1)
at io._renderRootsTransaction (index.js:78:1)
at io._renderRoot (index.js:78:1)
at io._appendDefinition (index.js:78:1)
at io.appendOutletView (index.js:78:1)
at invoke (index.js:78:1)
at m.flush (index.js:78:1)
at g.flush (index.js:78:1)
at V._end (index.js:78:1)
at index.js:78:1이 오류 이해하기
category-header.gjs:51 Uncaught TypeError: Cannot read properties of undefined (reading 'mobileView')
at get showHeader (category-header.gjs:51:61)
at eE (index.js:78:1)
at index.js:78:1
at index.js:78:1
at X (index.js:78:1)
at T (index.js:78:1)
at index.js:78:1
at index.js:78:1
at X (index.js:78:1)
at T (index.js:78:1)
at Object.evaluate (index.js:78:1)
at Object.evaluate (index.js:78:1)
at tV.evaluateSyscall (index.js:78:1)
at tV.evaluateInner (index.js:78:1)
at tV.evaluateOuter (index.js:78:1)
at t1.next (index.js:78:1)
at t1._execute (index.js:78:1)
at t1.execute (index.js:78:1)
at t2.sync (index.js:78:1)
at t6.render (index.js:78:1)
at index.js:78:1
at tx (index.js:78:1)
at io._renderRoots (index.js:78:1)
at io._renderRootsTransaction (index.js:78:1)
at io._revalidate (index.js:78:1)
at invoke (index.js:78:1)
at m.flush (index.js:78:1)
at g.flush (index.js:78:1)
at V._end (index.js:78:1)
at V.end (index.js:78:1)
at V._runExpiredTimers (index.js:78:1)이 오류 이해하기
category-header.gjs:51 Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'mobileView')
at get showHeader (category-header.gjs:51:61)
at eE (index.js:78:1)
at index.js:78:1
at index.js:78:1
at X (index.js:78:1)
at T (index.js:78:1)
at index.js:78:1
at index.js:78:1
at X (index.js:78:1)
at T (index.js:78:1)
at Object.evaluate (index.js:78:1)
at Object.evaluate (index.js:78:1)
at tV.evaluateSyscall (index.js:78:1)
at tV.evaluateInner (index.js:78:1)
at tV.evaluateOuter (index.js:78:1)
at t1.next (index.js:78:1)
at t1._execute (index.js:78:1)
at t1.execute (index.js:78:1)
at t2.sync (index.js:78:1)
at t6.render (index.js:78:1)
at index.js:78:1
at tx (index.js:78:1)
at io._renderRoots (index.js:78:1)
at io._renderRootsTransaction (index.js:78:1)
at io._revalidate (index.js:78:1)
at invoke (index.js:78:1)
at m.flush (index.js:78:1)
at g.flush (index.js:78:1)
at V._end (index.js:78:1)
at index.js:78:1이 오류 이해하기
정말 이상하네요. this.site.mobileView가 원래 버전에도 있었기 때문에 지금 이 에러가 나타나는 건 좀 의외입니다
. 최신 tests-passed 환경에서는 재현이 되지 않는데, 이건 stable 버전의 한계일까요? (다만, 코어에서도 이걸 사용하고 있으니 그럴 가능성은 낮아 보입니다.)