Как правило, безопаснее предположить, что файлы сценариев и сценарии, встроенные в загружаемые документы, включены для гнусных целей. Обнаружение скрытых скриптов требует тщательной проверки содержимого, и представленный ниже бесплатный 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 в месяц и никаких обязательств).