Как правило, безопаснее предположить, что файлы сценариев и сценарии, встроенные в загружаемые документы, включены для гнусных целей. Обнаружение скрытых скриптов требует тщательной проверки содержимого, и представленный ниже бесплатный API справляется с этой задачей, одновременно сканируя файлы на наличие миллионов сигнатур вирусов и вредоносных программ. Все, что требуется, — это один запрос для обнаружения широкого спектра атак; вы можете легко установить пользовательские правила угроз в теле запроса API, чтобы категорически блокировать файлы со встроенными скриптами (наряду с множеством других скрытых типов угроз).

Чтобы структурировать вызов API, просто скопируйте и вставьте приведенный ниже код (который использует встроенную возможность запроса XHR):

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);

Вы можете аутентифицировать свои запросы с помощью бесплатного ключа Cloudmersive API (чтобы получить его, зарегистрируйте бесплатную учетную запись — это включает 800 вызовов API в месяц и никаких обязательств).