editor

보안 (XSS)

에디터가 거르는 것과 서버에서 꼭 다시 걸러야 하는 이유.

82editor는 setHTML, 붙여넣기, 끌어다 놓기, 소스 보기에서 들어오는 모든 HTML을 허용 목록으로 거릅니다. script·style 태그, on* 속성, javascript: 주소, 허용되지 않은 iframe은 남지 않습니다.

서버에서 거르기

언어추천 라이브러리
PHPHTML Purifier
NodeDOMPurify + jsdom, 또는 sanitize-html
JavaOWASP Java HTML Sanitizer, jsoup Safelist
Pythonnh3 (bleach 후속)

허용 목록은 에디터와 맞추면 됩니다. 82editor 출력에 쓰이는 태그: p br div span h1-h6 strong em u s sub sup code pre blockquote ul ol li a img figure figcaption table thead tbody tr th td caption colgroup col hr mark nav iframe font. 속성은 style(글자색·크기·정렬·줄간격 등), href, src, alt, colspan, rowspan, data-checklist, data-checked, data-video. iframe 은 YouTube·Vimeo·네이버TV·카카오TV·Dailymotion 주소만.

보기 화면

  • 저장한 HTML을 보여 줄 때도 Content-Security-Policy 로 인라인 스크립트를 막아 두면 한 겹 더 안전합니다.
  • 외부 링크에는 rel="noopener nofollow ugc" 를 붙이세요 (82editor는 새 창 링크에 noopener를 붙입니다).