🌐Medium
CORS 와일드카드(*) 설정의 위험성
MyCompass 보안 가이드 · mycompass.kr/guide/cors-configuration
Access-Control-Allow-Origin: *는 모든 출처에서 API를 호출할 수 있게 허용합니다. 인증이 필요한 API에 이 설정이 있으면 다른 사이트에서 사용자 권한으로 요청을 보낼 수 있습니다.
올바른 CORS 설정 (Next.js API)
// src/app/api/route.ts
const ALLOWED_ORIGINS = ['https://mycompass.kr', 'https://www.mycompass.kr'];
export function OPTIONS(req: Request) {
const origin = req.headers.get('origin') || '';
const allowed = ALLOWED_ORIGINS.includes(origin) ? origin : '';
return new Response(null, {
headers: {
'Access-Control-Allow-Origin': allowed,
'Access-Control-Allow-Methods': 'GET, POST, OPTIONS',
'Access-Control-Allow-Headers': 'Content-Type, Authorization',
}
});
}
✨ AI 수정 프롬프트
현재 API에서 CORS를 * (와일드카드)로 허용하고 있어.
허용 도메인을 ['https://mydomain.com']으로만 제한하도록 수정해줘.
Next.js App Router API Route 기준으로 OPTIONS 핸들러와 함께 작성해줘.