프로젝트

일반

사용자정보

Actions

이슈 #243

진행중
CP RL

6-4. HTML 검증 및 보안 처리

이슈 #243: 6-4. HTML 검증 및 보안 처리

Chris Park이(가) 약 5시간 전에 추가함.

상태:
진행
우선순위:
높음
담당자:
목표버전:
시작일:
2026/04/28
완료일:
2026/04/30 (약 6달 지연)
진척도:

0%

추정시간:

설명

XSS 방지. 악성 스크립트 차단

작업 내용

  • LLM이 생성한 HTML을 WebView 렌더링 전 검증/필터링 (src/utils/parseCodeBlocks.ts에서 추출된 HTML 대상)
  • CDN allowlist 방식 (전면 차단 대신 통제):
    • 허용: cdn.jsdelivr.net, cdnjs.cloudflare.com, unpkg.com, cdn.tailwindcss.com, fonts.googleapis.com, fonts.gstatic.com
    • 차단: 임의 도메인의 <script src>, <link rel="stylesheet">, <iframe>, <object>, <embed>
    • 차단: javascript:, data:text/html 스킴
    • 차단: 외부 origin으로의 fetch/XHR/WebSocket
  • CSP <meta> 주입 (allowlist와 일치):
    • script-src https://cdn.jsdelivr.net https://cdnjs.cloudflare.com https://unpkg.com https://cdn.tailwindcss.com 'unsafe-inline'
    • style-src (상동) + fonts.googleapis.com 'unsafe-inline'
    • font-src fonts.gstatic.com data:
    • connect-src 'none'
    • frame-src 'none'
    • object-src 'none'
  • src/screens/Chat/HtmlViewerScreen.tsx 의 onShouldStartLoadWithRequest 를 동일 allowlist로 확장 (기존 about:blank/data: + 허용 CDN)
  • AXI 프롬프트(별도 이슈)에 "허용 CDN 목록만 사용" 가이드 추가 → LLM 단에서 선제 제어
  • allowlist 외 도메인 감지 시: 해당 태그 제거 후 렌더 (사용성 우선, 경고 토스트 표시)

수용 기준

  • <script src="https://cdn.jsdelivr.net/..."> 등 허용 CDN 스크립트는 정상 로드된다
  • <script src="https://evil.com/x.js"> 등 미허용 도메인 스크립트는 차단된다
  • Tailwind CDN + Chart.js로 생성한 차트 HTML이 정상 렌더링된다
  • <iframe src="..."> 등 외부 프레임이 로드되지 않는다
  • 프롬프트 하이재킹(AXI §8)으로 유도된 미허용 CDN 삽입이 차단된다
  • CSP connect-src 'none' 으로 외부 API 호출이 차단된다
  • 정상 HTML(인라인 스타일 + 인라인 스크립트 애니메이션)은 기존처럼 렌더링된다

참고

  • 관련 이슈: #241, #242 (HTML 추출 선행 작업)
  • 관련 커밋: 05e9836 (AXI §8 하이재킹 방지), 91a0930 (HTML 추출)
  • 주요 파일: src/utils/parseCodeBlocks.ts, src/screens/Chat/HtmlViewerScreen.tsx
  • SRI(무결성 해시) 검증은 Phase 2로 이관 (현재는 도메인 allowlist만 적용)

CP Chris Park이(가) 7달 전에 변경 Actions #1

  • 프로젝트을(를) 14에서 Alphea App(으)로 변경되었습니다.
  • 목표버전을(를) 6월 중간 버전(으)로 지정되었습니다.

RL Ryan Lee이(가) 7달 전에 변경 Actions #2

보강: CDN allowlist 방식 / CSP 정책 / 수용 기준 명시

RL Ryan Lee이(가) 7달 전에 변경 Actions #3

  • 상태을(를) 신규에서 진행(으)로 변경되었습니다.

description 보강 완료, 진행으로 전환

RL Ryan Lee이(가) 7달 전에 변경 Actions #4

진행 보류 — 향후 서버 작업 추가 및 변동사항 반영 후 정책 변경 가능성 큼. 서버 스펙 확정 후 재검토.

Actions

내보내기 PDF Atom