본문 바로가기
프로그래밍/자바스크립트

프로그래밍 「 자바스크립트 편」JavaScript를 사용하여 매크로에 대한 파일 업로드를 확인하는 방법

by grapedoukan 2023. 6. 25.
728x90

매크로가 포함된 파일을 시스템에 업로드하는 것은 위험한 작업입니다. 문서에 악성 매크로가 포함되어 있는 경우 다운스트림 사용자가 매크로를 열고 활성화하기만 하면 본격적인 맬웨어 공격이 발생할 수 있습니다.

아래 코드를 사용하여 업로드 프로세스에서 매크로를 허용하거나 허용하지 않도록 선택하는 동시에 파일에서 수백만 개의 바이러스 및 맬웨어 서명을 검사할 수 있습니다. "allowMacros" 매개 변수를 "false"로 설정하면 매크로가 기본 제공되는 문서에 대해 "CleanResult: False" 응답이 반환되므로 업로드 프로세스에서 해당 파일을 쉽게 제거할 수 있습니다.

아래 JavaScript 예제에서 복사하여 API 호출을 구조화한 다음 프리 티어 API 키로 요청을 인증할 수 있습니다(매월 최대 800개의 API 호출 허용).

var data = new FormData();
data.append("inputFile", fileInput.files[0], "file");
 
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function() {
     if(this.readyState === 4) {
          console.log(this.responseText);
     }
});

xhr.open("POST", "https://api.cloudmersive.com/virus/scan/file/advanced");
xhr.setRequestHeader("allowExecutables", "<boolean>");
xhr.setRequestHeader("allowInvalidFiles", "<boolean>");
xhr.setRequestHeader("allowScripts", "<boolean>");
xhr.setRequestHeader("allowPasswordProtectedFiles", "<boolean>");
xhr.setRequestHeader("allowMacros", "<boolean>");
xhr.setRequestHeader("allowXmlExternalEntities", "<boolean>");
xhr.setRequestHeader("allowInsecureDeserialization", "<boolean>");
xhr.setRequestHeader("allowHtml", "<boolean>");
xhr.setRequestHeader("restrictFileTypes", "<string>");

xhr.setRequestHeader("Apikey", "YOUR-API-KEY-HERE");

xhr.send(data);

이제 위협 규칙을 사용자 지정하고 다양한 바이러스, 맬웨어 및 숨겨진 콘텐츠 위협으로부터 파일 업로드 프로세스를 보호할 수 있습니다.

728x90