피드로 돌아가기
Dev.toSecurity
원문 읽기
TypeScript 타입 시스템의 맹점을 극복한 다층 방어 보안 아키텍처 설계
Typescript Application Security from A to Z: A Guide to Protecting Against Obvious and Not-So-Obvious Vulnerabilities
AI 요약
Context
TypeScript의 정적 타입 시스템을 보안 도구로 오인하여 발생하는 런타임 취약점 분석. 특히 ORM 사용 환경에서도 Raw Query 및 String Interpolation으로 인한 SQL Injection 위험이 잔존하는 구조적 한계 노출.
Technical Solution
- class-validator 기반 DTO 도입을 통한 입구 단계의 Strict Validation 강제
- TypeORM Raw SQL 사용 시 String Concatenation 배제 및 Parameterized Placeholders 적용으로 쿼리 분리
- Prototype Pollution 방지를 위해 Object.prototype 및 constructor 접근을 차단하는 Clean Object 처리 로직 구현
- JWT 보안 강화를 위한 알고리즘 고정, 짧은 만료 시간 설정 및 Rotation 전략 기반의 Refresh Token 설계
- Frontend XSS 방지를 위해 DOMPurify 라이브러리를 통한 HTML Sanitization 및 CSP 헤더 적용
- Client-Side 환경 변수 분리를 통한 Sensitive Data 유출 방지 및 SameSite=Strict 설정으로 CSRF 차단
실천 포인트
- any 타입 사용을 금지하고 Runtime Type Guard 및 ts-runtime 도입 검토 - ORM의 QueryBuilder 사용 시 .where() 내 문자열 보간법 사용 여부 전수 조사 - eslint-plugin-security 도입을 통한 정적 분석 보안 룰 적용 - dangerouslySetInnerHTML 사용 시 DOMPurify 적용 여부 확인