[IT/기술] [트렌드] 마크다운 게시판에서 HTML이 렌더링된다? XSS 보안 위험 쉽게 알아보기

관리자 Lv.1
02-23 13:46 · 조회 20 · 추천 0

[트렌드] 마크다운 게시판에서 HTML이 렌더링된다? XSS 보안 위험 쉽게 알아보기


발견한 현상

AI로 생성한 글을 커뮤니티 게시판에 붙여넣었더니 이상한 일이 발생했습니다.

  • 일반 모드: HTML/CSS 코드가 텍스트로 그대로 노출됨
  • 마크다운 모드: HTML+CSS가 실제로 렌더링됨 (모바일 사이즈로 찌그러져서)

왜 이런 일이 벌어졌을까요?


마크다운은 원래 HTML을 허용한다

마크다운 창시자(John Gruber)가 설계할 때부터 정한 규칙입니다.

"마크다운 문법으로 표현할 수 없는 것은 HTML을 그대로 사용하면 된다."

즉, 마크다운 안에 <div>, <style>, <table> 같은 HTML 태그를 넣으면 그대로 렌더링됩니다. 이건 버그가 아니라 의도된 동작입니다.


그런데 이게 왜 위험한가? - XSS 공격

XSS(Cross-Site Scripting)란 다른 사용자의 브라우저에서 공격자의 악성 코드가 실행되는 것입니다.

공격 시나리오

1. 공격자가 게시글에 악성 스크립트를 삽입
2. 다른 사용자가 그 게시글을 열람
3. 사용자 브라우저에서 악성 코드가 자동 실행
4. 로그인 세션 탈취, 개인정보 유출 등 피해 발생

위험 단계별 정리

허용된 태그 위험도 가능한 공격
<style> 중간 가짜 로그인 폼 표시, CSS로 데이터 탈취
<img onerror="..."> 높음 이미지 로드 실패 시 스크립트 실행
<script> 매우 높음 쿠키 탈취, 키 입력 감시, 계정 도용

핵심 포인트

<style> 태그가 통과된다는 것은 HTML 필터링이 느슨하다는 신호입니다. <style>이 되면 다른 우회 방법도 존재할 가능성이 높습니다.


플랫폼별 HTML 허용 정책 비교

플랫폼 style 태그 script 태그 이벤트 핸들러
GitHub 제거 제거 제거
Notion 제거 제거 제거
Discord 전부 제거 전부 제거 전부 제거
일부 커뮤니티 허용 보통 차단 필터링 불확실

대부분의 대형 플랫폼은 보안을 위해 HTML을 엄격하게 필터링합니다.


실제 피해가 발생하면?

공격자가 게시글에 악성 코드 삽입
         |
피해자가 글 열람
         |
피해자 브라우저에서 자동 실행:
  - 로그인 쿠키(세션) 탈취 -> 계정 도용
  - 키 입력 감시 -> 비밀번호 유출
  - 가짜 로그인 창 표시 -> 피싱
  - 피해자 명의로 글 작성/삭제

게시판 운영자가 해야 할 것

  1. 마크다운 렌더링 시 HTML 새니타이징(sanitizing) 적용
  2. 허용할 태그를 화이트리스트로 관리 (예: <b>, <i>, <a> 정도만)
  3. <style>, <script>, 이벤트 핸들러(onerror, onclick 등) 모두 제거
  4. CSP(Content Security Policy) 헤더 설정

사용자가 주의할 점

  • AI가 생성한 HTML 코드를 게시판에 그대로 붙여넣지 말 것
  • AI에게 요청할 때 "순수 텍스트" 또는 "마크다운만" 이라고 지정할 것
  • 의심스러운 게시글에서 로그인 폼이 뜨면 절대 입력하지 말 것

AI 시대에 콘텐츠 생성은 쉬워졌지만, 그만큼 보안 의식도 함께 높아져야 합니다. 게시판에 글을 올릴 때, 어떤 코드가 포함되어 있는지 한 번 더 확인하는 습관이 필요합니다.

💬 0 로그인 후 댓글 작성
첫 댓글을 남겨보세요!