[나리야 빌더] 관리자 HTML/마크다운 필터링 (HTMLPurifier) 및 theme.css 적용 개발방향 문드립니다.
작성자 정보
- 관리자 작성
- 작성일
컨텐츠 정보
- 104 조회
-
목록
본문
안녕하세요.
항상 질문답변을 게시판에서 많은 도움이 되고 있습니다.
궁금한 점이 있어서 고민하고 시도 하다가 해결이 안되어 질문을 드립니다.
게시판(회원: 텍스트만, 운영자: 텍스트, 마크다운(추가보안예정, html, 레벨8이상 설정상태,), 나리야 최신버전이용중.
게시판 운영에 있어 오직 관리자(특정 레벨 이상 회원)만이 콘텐츠 작성 시 마크다운 문법과 HTML 태그를 자유롭게 사용하여 게시물을 작성하고,
이 콘텐츠가 public_html/theme/BS4-Basic/css/theme.css에 정의된 공통 CSS 스타일을 기반으로 일관된 디자인으로 렌더링되도록 하는 것이 궁극적인 목표입니다.
일반 회원들은 게시판에서 HTML을 사용할 계획이 전혀 없으며, 순수 텍스트 입력만 허용할 것입니다.
■ 문제점과 현재까지의 시도
초기 문제 인식: "글쓰기 후 HTML 적용이 제대로 안 됨"
게시물 작성 시 HTML 태그(
,
등)를 입력하면 theme.css에 정의된 스타일이 적용되지 않거나,태그의 id, class, style 속성 등이 제거되는 현상이 발생했습니다. 마크다운 문법 또한 HTML로 변환되지 않고 텍스트 그대로 출력되었습니다.
게시판 관리자 설정에서 **HTML 쓰기 권한을 '8레벨 이상'**으로 설정했으며, 관리자 계정으로 테스트했음에도 불구하고 이 필터링 문제는 동일하게 발생했습니다.
현재 시도 중인 우회 방안 및 최종 목표:
위 문제 해결을 위해 현재는 제한적으로 테스트를 거쳐 정상 적용되는 인라인 스타일만을 찾아 게시물에 직접 적용하여 콘텐츠 템플릿을 만들어 사용하고 있습니다.
(이 방식은 모바일 반응형에서 일부 추가 보안/수정 작업이 필요한 상태입니다.)
하지만 저희의 궁극적인 목표는 이처럼 매번 인라인 스타일을 사용하는 것이 아니라, theme.css에 기본적인 공통 요소들을 정의해두고,
콘텐츠 제작 시 마크다운/HTML을 사용하여 글을 올리면 티스토리 블로그처럼 스킨 CSS(theme.css)와 글쓰기 내용(마크다운/HTML)이 합쳐져 원하는 디자인이 자연스럽게 적용되도록 하는 것입니다.
DHTML 에디터 사용 환경 분석:
관리자에서 DHTML 에디터를 '선택' 및 '미선택' 상태로 모두 테스트했습니다.
'미선택' 시에는 글쓰기 에디터가 아예 출력되지 않고(public_html/lib/editor.lib.php 참조),
HTML 필터링 문제가 더욱 심화되어 현실적인 운영이 불가능했습니다.
[파악한 핵심 원인과 개발 수정 방향에 대한 문의]
위 문제들의 근본적인 원인은 public_html/lib/common.lib.php 내 html_purifier() 함수에서 작동하는 HTMLPurifier 라이브러리의 필터링 정책 때문이라고 판단하고 있습니다.
8레벨 이상 관리자에게도 이러한 필터링이 적용되는 이유와 이를 제어하는 방안이 궁금합니다.
(과거 HTMLPurifier의 purehtml 설정 변경 시도 시, 보안 문제로 일반 사용자 HTML 허용이 위험하다는 조언을 받았습니다. 저희는 관리자 HTML만 허용하기에 문제 없을 것이라 판단합니다.)
관리자가 의도한 HTML/마크다운을 온전히 적용하고 theme.css와 연동하기 위한 최적의 개발 수정 방향 또는 대체 방안에 대한 구체적인 힌트 또는 가이드라인을 요청드립니다.
HTMLPurifier 필터링 정책 조정 (핵심 요청):
HTML 쓰기 권한(8레벨 이상)을 가진 관리자 계정에 한해서, public_html/lib/common.lib.php 파일 내 html_purifier() 함수에서
HTMLPurifier의 설정을 조정하여 HTML 태그의 id 및 class 속성이 제거되지 않고 유지되도록 하는 방법에 대한 구체적인 힌트(예시 코드 또는 설정 옵션)를 요청드립니다.
또한, style 속성 내에 허용 가능한 특정 CSS 속성
(예: background, padding, margin, border, color, font-size, font-weight, display, border-radius, line-height, text-align 등)을 추가하여
필터링되지 않도록 하는 방법도 알려주시면 감사하겠습니다.
DHTML 에디터 최적화 및 마크다운 지원 방안:
현재 선택된 DHTML 에디터(public_html/plugin/editor/[선택된 에디터명]/editor.lib.php 등)를 통해 불필요한 인라인 스타일 생성을 최소화하고,
순수한 의미 태그(
,
등)만을 생성하도록 에디터 설정을 제어할 수 있는 힌트를 주실 수 있을까요?나리야 빌더 환경에서 DHTML 에디터가 마크다운 문법 입력을 지원하거나,
입력된 마크다운을 자동으로 HTML로 변환하는 기능을 활성화할 수 있는 방법이 있다면 함께 알려주십시오.
[주요 관련 파일]
문제 분석에 활용된 주요 파일 목록입니다.
public_html/lib/common.lib.php
public_html/HTMLPurifier.standalone.php
public_html/theme/BS4-Basic/css/theme.css
public_html/skin/board/BS4-Basic-List/write.skin.php
public_html/skin/board/BS4-Basic-List/view.skin.php
public_html/lib/editor.lib.php
인라인용게시물 https://maocafe.com/bbs/board.php?bo_table=2050&wr_id=8
스타일시트 가능요소 https://maocafe.com/bbs/board.php?bo_table=1070&wr_id=11&page=2
~~~등등
바쁘시겠지만. 답변해주시면 대단히 감사하겠습니다.
감사합니다. 수고하세요.
관련자료
-
링크