피드로 돌아가기
Dev.toSecurity
원문 읽기
AI 생성 코드의 함정, CORS 와일드카드 설정 제거 및 보안 강화 전략
Why Cursor Keeps Setting CORS to * (And How to Fix It)
AI 요약
Context
Cursor 등 AI 에디터가 Express 백엔드 생성 시 origin: '*' 설정을 기본으로 제안하는 경향 발견. 이는 학습 데이터 내의 단순 구현 예제들이 보안보다 동작 우선으로 작성된 결과. 인증된 API에서 와일드카드 CORS 설정은 세션 토큰을 이용한 타 사이트의 요청 및 응답 탈취 가능성을 열어두는 취약점.
Technical Solution
- 정적 문자열
*대신 런타임 시점에 유효성을 검증하는 Validator 함수 도입 - 환경 변수 기반의
ALLOWED_ORIGINS리스트를 구성하여 개발 및 운영 환경별 허용 도메인 분리 !origin케이스를 허용하여 Origin 헤더가 없는 Server-to-Server 요청 및 CLI 도구의 접근성 유지credentials: true설정과 동적으로 검증된 Origin을 결합하여 브라우저의 보안 거부 반응 해결- 허가되지 않은 도메인 요청 시
Access-Control-Allow-Origin헤더가 누락되도록 설계하여 비정상 접근 차단 - CI 파이프라인 내에 미승인 Origin의 요청을 차단하는 통합 테스트 코드를 추가하여 설정 회귀 방지
Key Takeaway
AI가 제안하는 코드는 '동작'을 보장할 뿐 '보안'을 보장하지 않으므로 엔지니어의 비판적 검토와 검증 프로세스 필수. 편리한 설정보다 명시적인 화이트리스트 기반의 보안 설계 원칙 준수가 중요.
실천 포인트
AI 생성 CORS 설정 발견 시 즉시 화이트리스트 함수로 교체하고, 이를 검증하는 통합 테스트를 CI에 추가할 것