제어 대상 사용자: <iframe> 사용/접근 권한 설정 방법?

안녕하세요 여러분.

특정 사용자의 iframe(주로 임베드된 비디오) 사용 권한을 허용하거나 거부하도록 제어할 수 있을까요?

이 내용은 나중에 다시 읽다가 추가했습니다. 만약 기술적으로 그런 크기의 부담이 거의 불가능할 정도로 크다면, 스태프와 그 외 사용자, 또는 신뢰 수준별로 구분해서 처리하면 될 것 같습니다.

그리고 저는 완전한 초보자인데, 같은 혹은 비슷한 질문이 Discourse 내의 사용자 "권한"의 다른 측면에도 적용될 것입니다. 이 부분을 다루는 man page(매뉴얼 페이지)가 있을까요?

Strava와 Garmin의 one-box를 찾아 iframe으로 대체하는 테마 컴포넌트를 만들었습니다. 지원하려는 동영상 사이트의 수가 고정되어 있다면, 유사한 솔루션이 효과적일 수 있습니다:

@pfaffman 당신의 답변이 제 질문과 관련이 있는지 확신하십니까?

저는 단순히 Discourse의 “일반적인” 관리 수단을 통해 iframe(또는 onebox, 혹은 해당 기술에 가장 적절한 용어가 무엇인지)의 사용(또는 처리, 렌더링 등)을 허용하거나 차단할 수 있는지를 묻고 있을 뿐입니다.

만약 답변에서 그렇게 활용할 수 있는 코드가 있다는 의미였다면, 그것은 저나 저와 같은 사람들에게는 맞지 않습니다. 저는 웹 개발자가 아니니까요.

하지만 @devel 님이 여기서 보신다면 - Discourse를 사용하기 시작한 지 얼마 되지 않았지만, 다양한 시스템의 관리자로 긴 경력을 가진 저로서는 궁금합니다:

  • 사용자 "자유"라는 “철학적” 측면, 즉 임의의 콘텐츠(여기서는 순수하게 비디오에 한정하여)를 포함할 수 있는 권한에 대해 어떻게, 혹은 어떻게 결정하셨는지요?

제 생각에는 임베디드 비디오 콘텐츠와 같이 호스트/제공자조차 100% 제어할 수 없는 콘텐츠의 내용이라는 점에서 매우 중요한 요소는(제가 아는 모든 다른 컴퓨터 시스템이 이러한 유사한 중요한 기능을 처리하는 방식처럼) 사용자/그룹별로 세밀하게 제어되어야(해야 합니다) 합니다.

따라서, Discourse가 아직 이에 대해 고안하지 않았다면, 그리고 현재 Discourse에 이러한 제어 기능이 존재하지 않는다면, 가까운 미래에 이러한 “경화(hardening)” 메커니즘/기법을 포함해 주시기를 제안으로 드리고 싶습니다. Discourse가 이미 그렇듯이, 많은 사람들이 이러한 훌륭한 소프트웨어 솔루션이 더 좋아지는 것에 대해 감사할 것이라고 믿습니다.

기본적으로 Discourse는 사용자가 게시물에 대부분의 iframe 요소를 삽입하는 것을 허용하지 않습니다. 이는 allowed iframes 사이트 설정으로 제어됩니다. 이 설정은 게시물에 추가할 수 있는 iframe의 src 도메인 목록을 허용합니다.

그러나 사용자의 권한에 따라 어떤 iframe을 추가할 수 있는지를 제어하는 방법은 없습니다. staff allowed iframes와 같은 설정이 존재하지 않기 때문입니다.

대부분의 경우 Discourse는 "oneboxes"를 사용하여 외부 콘텐츠를 임베드합니다. 이를 통해 사용자가 게시물에 링크를 삽입할 수 있습니다. 일부 경우 Discourse는 이러한 링크를 iframe으로 변환합니다. 예를 들어, 게시물 편집기에서 YouTube 비디오 링크가 단독 줄에 추가되면, iframe에 표시되는 비디오 요소로 변환됩니다. Discourse가 이 방식으로 처리하는 도메인은 제한적입니다. 예를 들어 Vimeo, YouTube 등이 있습니다.

allowed onebox iframes 사이트 설정을 사용하여 iframe onebox가 생성되는 도메인을 제한할 수 있습니다. 이 설정의 기본값은 *입니다. 이를 제한하려면 해당 설정 아래에 표시되는 드롭다운 입력 필드를 클릭하세요. Discourse가 iframe으로 onebox하도록 구성된 도메인 목록에서 특정 도메인을 선택할 수 있습니다.

@simon님의 답변을 보완하고 이 특정 지점에 대해 말씀드리자면, max oneboxes per post를 0으로 설정하면 oneboxing 기능을 전체적으로 비활성화할 수 있으며, 이를 통해 YouTube와 Vimeo의 비디오 콘텐츠도 비활성화됩니다.

만약 해당 파라미터/값이 '사용자별 값’으로 보완 및 오버라이드될 수 있다면 — 다시 한번 말하지만, 아마도 향후 개발/릴리스에서 — 많은 분들이 크게 만족할 것이라 확신합니다. 감사합니다.

제 환경에서는 작동하지 않는 것 같습니다. 0으로 설정했는데도 불구하고 사용자가 iframe을 포함한 게시물을 작성하면, 프레임/플레이어가 예상대로 표시되고 정상적으로 재생됩니다.
이 설정을 무시하는 다른 파라미터나 옵션이 있을까요?
또한, 이 맥락에서 허용된 iframe을 어떻게 이해해야 하나요?

게시물당 최대 원박스 수 설정은 게시물에 추가할 수 있는 원박스의 수를 제어합니다. 여기서 용어가 혼동될 수 있지만, "원박스(onebox)"란 Discourse가 다양한 출처의 링크를 처리하는 방식입니다. 예를 들어, 브라우저의 주소창에서 YouTube나 Vimeo 비디오 링크를 게시물의 별도 줄에 추가하면, Discourse는 해당 링크에 대해 원박스 비디오 플레이어를 생성합니다.

게시물당 최대 원박스 수를 0으로 설정하면, 사용자는 이러한 유형의 원박스를 생성할 수 없게 됩니다.

현재 확인하고 계신 현상은 이 설정이 사용자가 게시물에 iframe 요소를 추가하는 것을 막지 못하기 때문인 것 같습니다. 사용자가 게시물에 iframe을 추가하는 것을 방지하려면, 사이트의 허용된 iframe 사이트 설정에 나열된 iframe 소스에서 하나 이상을 제거해야 합니다. 해당 설정의 기본값은 다음과 같습니다:

@simon - 알겠습니다, 감사합니다. 말씀하신 대로인 것 같습니다. 이제 그곳에서 어떤 일이 일어나는지를 더 잘 이해한 것 같습니다. URI에 iframe이 존재하는 경우, max oneboxes per post = 0은 iframe에 대해 아무 의미도 갖지 않는다는 뜻이죠.

다시 한 번 말씀드리자면, onebox &| iframe을 관리자/모더레이터에게만 허용하는 것은 불가능한 것이 맞습니까?

시몬이 이미 이 질문에 답한 것 같습니다.

@Lilly devel 팀이 이걸 기능 요청으로 등록해서 향후 릴리스에 반영해 주실 수 있을까요? 감사합니다. 이렇게 강화된 Discourse를 많은 분들이 좋아하실 거라고 확신합니다.

실제로 이 기능을 요청한 사용자가 몇 명이나 있나요? 원하시면 직접 Contribute > Feature 요청을 하셔도 됩니다.

이것은 사용자들의 문제가 아니라, 관리자로서 제 문제입니다. 몇 개의 게시물 전에 제 근거를 최대한 잘 설명해 두었습니다.