Skip to content

[Improvement] 커뮤니티 게시글 XSS 취약점 #713

Description

@wlsgur11

개선 대상 및 현재 한계점

커뮤니티 게시글 미리보기(content_preview)가 저장된 HTML을 v-html
그대로 렌더링해 저장형 XSS가 가능합니다. 글 생성 API가 본문을 정제 없이
저장하기 때문에, 스크립트를 심으면 목록을 보는 다른 사용자 브라우저에서
실행될 수 있습니다.

  • 대상: Community.vue(커뮤니티 목록), ProblemCommunity.vue(문제풀이 탭)

제안하는 개선 사항

미리보기를 순수 텍스트로 처리합니다.

  • 백엔드: content_previewstrip_tags로 태그 제거 후 100자 반환
  • 프론트: v-html → 텍스트 보간({{ }})으로 변경

참고 자료

  • 예시: content<img src=x onerror=alert(1)>를 넣어 생성 시 미리보기에서 실행됨
  • 상세 보기는 Tiptap이 위험 태그를 제거하므로 현재도 안전

Acceptance Criteria

  • 스크립트가 포함된 게시글을 만들어도 미리보기에서 실행되지 않는다
  • 미리보기가 순수 텍스트로 표시된다

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels
    No fields configured for Feature.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions