Skip to content

Security: FAQ answer_html 서버 측 소독(sanitize) 정책 도입 #275

Description

@chanwoo7

배경

릴리즈 PR #272의 CodeRabbit 지적(Stored XSS, CWE-79). StoreFaqTopic.answer_html은 판매자가 등록하는 HTML이고, 알림센터 채팅(FAQ 자동응답 bodyHtml)을 통해 구매자에게 노출된다. 악의적 판매자 계정이 스크립트를 심으면 구매자 대상 stored XSS 벡터가 될 수 있다.

현재 완화 요인 (즉시 수정 대신 이슈로 미룬 근거)

  • 판매자는 인증·수기 프로비저닝되는 준신뢰 주체 (자가 가입 없음)
  • 실사용자 없는 개발 단계, FE의 HTML 렌더 방식(웹뷰/RN 컴포넌트) 미확정 — 서버 소독 화이트리스트를 지금 확정하면 FE 렌더 요구와 어긋날 수 있음
  • FE 렌더 단 소독은 어차피 필수(심층 방어 1차선)

할 일

  • FE와 허용 태그/속성 화이트리스트 합의 (예: p, strong, ul/li, br 수준)
  • 서버 소독 지점 결정: 판매자 FAQ 저장 시(sellerCreate/UpdateFaqTopic) 소독 — 저장 스냅샷 정책과 정합
  • sanitize-html 등 도입 + 판매자 conversation HTML 답장(sellerSendConversationMessage bodyHtml)에도 동일 적용
  • 기존 저장분 마이그레이션(재소독) 여부 검토

참고

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions