JavaScript로 첨부파일 확장자 검사하기
🤖 AI 웹 서비스용 파일 업로드 보안 구현
AI 기반 웹 애플리케이션에서는 사용자가 생성한 AI 결과물이나 LLM 분석 파일을 업로드하도록 허용하는 경우가 많습니다.
이때 클라이언트 검증 없이 파일을 수신하면 .jsp, .exe 같은 실행 파일이 서버에 저장되어 보안 사고로 이어질 수 있습니다.
다음 예제는 결과 파일을 안전하게 제한하기 위한 간단한 프런트엔드 검사입니다. PDF, TXT, CSV 같은 형식만 허용하고 그 외 확장자는 차단합니다. 이 페이지는 JavaScript로 첨부파일 확장자 검사하기 목적에 맞춘 실용적 예제를 제공합니다.
🧠 코드 예제
const MSG_FILE_EXT_INVALID = "{0} 형식의 파일은 업로드할 수 없습니다.";
const ALLOWED_EXT = ["pdf", "txt", "csv", "json"];
const BLOCKED_EXT = ["jsp", "php", "exe", "dll", "asp", "aspx", "js", "bat"];
function validateAIUpload(files) {
for (let i = 0; i < files.length; i++) {
const fileName = files[i].name;
const ext = fileName.split('.').pop().toLowerCase();
// 금지 확장자 차단
if (BLOCKED_EXT.includes(ext)) {
alert(MSG_FILE_EXT_INVALID.replace("{0}", "." + ext));
return false;
}
// 허용 확장자 외에는 업로드 금지
if (!ALLOWED_EXT.includes(ext)) {
alert(MSG_FILE_EXT_INVALID.replace("{0}", "." + ext));
return false;
}
}
alert("✅ 파일 검증 완료! 업로드 가능합니다.");
return true;
}
🧩 업로드 폼 예제
<form id="uploadForm" onsubmit="return false;">
<h4>AI 모델 결과 파일 업로드</h4>
<input type="file" id="aiFile" multiple onchange="validateAIUpload(this.files)" />
</form>
🔍 코드 설명
ALLOWED_EXT→ 업로드를 허용할 확장자 목록(예: PDF, TXT, CSV)BLOCKED_EXT→ 즉시 차단할 위험 확장자 목록(예: JSP, EXE 등)alert()→ 사용자에게 금지된 파일임을 알리는 간단한 피드백 수단validateAIUpload()→ 파일 배열을 순회하면서 확장자를 확인해 허용/차단을 결정
⚠️ 보안 팁
이 JavaScript 검사는 기본적인 프런트엔드 필터이며, 절대 단독 방어막으로 의존해서는 안 됩니다. 서버 측에서 MIME 타입과 확장자, 파일 내용(시그니처) 검사를 추가해 이중으로 검증해야 실제 공격을 방지할 수 있습니다. 또한 파일 이름에 여러 점(.)이 포함된 경우나 대소문자 혼합 확장자도 고려하세요.
🧠 확장 응용 (AI 업로드 시스템)
예를 들어, LLM이 생성한 리포트를 PDF로 저장한 뒤 다시 업로드해 자동 요약이나 품질 검사를 수행하는 워크플로우에서는 프런트엔드에서 JavaScript로 첨부파일 확장자 검사하기를 먼저 실행하고, 서버에서 심층 검사를 이어가는 방식이 안전합니다.
// AI 분석 전용 업로드 (PDF만 허용)
function validateAIDocUpload(files) {
const ALLOWED_AI_DOC = ["pdf"];
for (const file of files) {
const ext = file.name.split('.').pop().toLowerCase();
if (!ALLOWED_AI_DOC.includes(ext)) {
alert("AI 문서 업로드는 PDF만 허용됩니다.");
return false;
}
}
alert("AI 문서 검증 완료!");
return true;
}
함께 보면 좋은 엔터프라이즈 사례
🚀 이 주제, 우리 서비스에 어떻게 적용할까요?
JavaScript로 첨부파일 확장자 검사하기를 실제 서비스와 조직에 녹여보고 싶다면, 현재 아키텍처와 운영 방식을 한 번 점검해 보는 것부터 시작해 보세요. 팀 위키나 기술 블로그, 사내 스터디 주제로도 아주 좋습니다.
이 글이 도움이 됐다면, 비슷한 엔터프라이즈 사례 글들도 함께 살펴보면서 우리 조직에 맞는 운영 상용구를 정의해 보세요.
댓글
댓글 쓰기