next-auth 사용 시)next-auth를 사용할 때, 인증 관련 보안 이슈(XSS, CSRF, 세션 탈취 등)를 방지하기 위해 아래와 같은 설정을 적용했습니다.
| 옵션명 | 설정값 | 설명 |
|---|---|---|
HttpOnly |
true |
JavaScript에서 쿠키 접근을 차단하여 XSS 공격 방지 |
Secure |
true |
HTTPS 환경에서만 쿠키가 전송되도록 제한하여 중간자 공격(MITM) 방지 |
SameSite |
lax 또는 strict |
외부 도메인에서의 요청 시 쿠키 전송 제한 → CSRF 방지에 효과적 |
✅ next-auth는 기본적으로 next-auth.session-token이라는 이름의 쿠키를 발급하며, 이 쿠키에 위 보안 옵션을 적용할 수 있습니다.
AUTH_SECRET은 JWT 전략 사용 시, 토큰의 **서명(Signature)을 위한 비밀 키(secret)**로 사용됩니다.next-auth는 이를 필수로 요구합니다.# .env.local
AUTH_SECRET=your-very-secret-key
✅ 토큰 위조 방지 및 무결성 검증을 위해 반드시 설정해야 합니다.
next-auth는 내부적으로 CSRF 토큰 생성 및 검증 로직을 포함하고 있어, 기본적인 폼 로그인/요청에 대해 CSRF 보호가 자동으로 이루어집니다.next-auth는 /api/auth/csrf API를 통해 CSRF 토큰을 발급하고, 내부적으로 로그인 시, 이 토큰을 함께 전송하도록 되어 있음| 위협 요소 | 대응 방법 |
|---|---|
| XSS | HttpOnly 쿠키 설정 |
| CSRF | SameSite, CSRF 토큰 자동 처리 |
| MITM | Secure 쿠키 설정 (HTTPS만 허용) |
| JWT 위조 | AUTH_SECRET 설정으로 서명 검증 |