피드로 돌아가기
A single XSS can kill your startup
Dev.toDev.to
Security

단 30분 투자로 Supply Chain Attack 및 XSS 리스크 원천 차단

A single XSS can kill your startup

Fernando Gallardo2026년 6월 30일7intermediate

Context

빠른 제품 출시를 우선하는 스타트업 개발 문화로 인해 보안 검토가 누락된 아키텍처 설계. 특히 입력값 검증 부재와 정적 토큰 사용으로 인해 시스템 전체가 공격자의 제어 하에 놓일 수 있는 구조적 결함 존재.

Technical Solution

  • Pydantic의 HttpUrl 및 Literal 타입을 적용한 엄격한 Type Validation으로 javascript: URI를 통한 XSS 및 SSRF 경로 차단
  • Bleach 라이브러리를 활용한 Allowlist 기반 Sanitization 적용으로 Markdown 렌더링 시 발생하는 Stored XSS 원천 제거
  • Token 기반 인증 엔드포인트에 Rate Limiting을 도입하여 무차별 대입 공격(Brute-force)의 시간 복잡도 및 비용 증대
  • GitHub OIDC 도입을 통한 Static Token 의존성 제거 및 Short-lived Token 체계로의 전환을 통한 유출 리스크 최소화
  • 읽기 시점(Read-time)이 아닌 저장 시점(Write-time)의 데이터 정제를 통한 런타임 오버헤드 감소 및 일관된 보안 정책 적용

- Pydantic 등 스키마 검증 라이브러리를 사용하여 URL 및 열거형 데이터의 타입 강제 - HTML 렌더링이 필요한 필드는 반드시 서버측 Sanitization 라이브러리로 필터링 - 모든 인증 API에 최소 분당 5회 수준의 Rate Limit 설정 - CI/CD 파이프라인 내 정적 시크릿 사용을 지양하고 OIDC 기반의 동적 인증 체계 검토

원문 읽기