🚪High
관리자 페이지 경로 보호
MyCompass 보안 가이드 · mycompass.kr/guide/admin-path-exposure
/admin, /wp-admin 경로가 외부에 노출되면 자동화 봇이 무차별 로그인을 시도합니다. 경로를 예측 불가능하게 변경하거나 IP 기반 접근 제어를 적용하세요.
Next.js 미들웨어로 관리자 경로 IP 제한
// middleware.ts
import { NextRequest, NextResponse } from 'next/server';
const ALLOWED_IPS = (process.env.ADMIN_ALLOWED_IPS || '').split(',');
export function middleware(req: NextRequest) {
if (req.nextUrl.pathname.startsWith('/admin')) {
const ip = req.headers.get('x-forwarded-for')?.split(',')[0].trim() || '';
if (ALLOWED_IPS.length && !ALLOWED_IPS.includes(ip)) {
return new NextResponse('Forbidden', { status: 403 });
}
}
return NextResponse.next();
}
✨ AI 수정 프롬프트
Next.js middleware.ts에서 /admin 경로에 대해 IP 기반 접근 제어를 구현해줘.
허용 IP 목록은 환경변수 ADMIN_ALLOWED_IPS (콤마 구분)에서 읽어오고,
허용되지 않은 IP는 403 응답을 반환해줘.