2018-06-02 18:07:00 +00:00
|
|
|
import getFileReport from './virustotal';
|
2015-07-09 23:01:43 +01:00
|
|
|
|
2016-06-06 15:37:00 +01:00
|
|
|
const extensions = [
|
|
|
|
'EXE',
|
|
|
|
'PIF',
|
|
|
|
'APPLICATION',
|
|
|
|
'GADGET',
|
|
|
|
'MSI',
|
|
|
|
'MSP',
|
|
|
|
'COM',
|
|
|
|
'SCR',
|
|
|
|
'HTA',
|
|
|
|
'CPL',
|
|
|
|
'MSC',
|
|
|
|
'JAR',
|
|
|
|
'BAT',
|
|
|
|
'CMD',
|
|
|
|
'VB',
|
|
|
|
'VBS',
|
|
|
|
'VBE',
|
|
|
|
'JS',
|
|
|
|
'JSE',
|
|
|
|
'WS',
|
|
|
|
'WSF',
|
|
|
|
'WSC',
|
|
|
|
'WSH',
|
|
|
|
'PS1',
|
|
|
|
'PS1XML',
|
|
|
|
'PS2',
|
|
|
|
'PS2XML',
|
|
|
|
'PSC1',
|
|
|
|
'PSC2',
|
|
|
|
'MSH',
|
|
|
|
'MSH1',
|
|
|
|
'MSH2',
|
|
|
|
'MSHXML',
|
|
|
|
'MSH1XML',
|
|
|
|
'MSH2XML',
|
|
|
|
'SCF',
|
|
|
|
'LNK',
|
|
|
|
'INF',
|
|
|
|
'REG',
|
|
|
|
'PDF',
|
|
|
|
'DOC',
|
|
|
|
'XLS',
|
|
|
|
'PPT',
|
|
|
|
'DOCM',
|
|
|
|
'DOTM',
|
|
|
|
'XLSM',
|
|
|
|
'XLTM',
|
|
|
|
'XLAM',
|
|
|
|
'PPTM',
|
|
|
|
'POTM',
|
|
|
|
'PPAM',
|
|
|
|
'PPSM',
|
|
|
|
'SLDM',
|
|
|
|
'RAR',
|
|
|
|
'TAR',
|
|
|
|
'ZIP',
|
|
|
|
'GZ',
|
2015-07-09 23:01:43 +01:00
|
|
|
];
|
|
|
|
|
|
|
|
function getExtension(filename) {
|
|
|
|
const i = filename.lastIndexOf('.');
|
|
|
|
return (i < 0) ? '' : filename.substr(i + 1);
|
2015-08-23 22:12:32 +01:00
|
|
|
}
|
2015-07-09 23:01:43 +01:00
|
|
|
|
2018-06-02 18:07:00 +00:00
|
|
|
export default async (file) => {
|
|
|
|
if (extensions.indexOf(getExtension(file.name.toUpperCase())) < 0) {
|
2015-08-30 21:15:31 +02:00
|
|
|
return false;
|
|
|
|
}
|
2018-06-02 18:07:00 +00:00
|
|
|
const result = await getFileReport(file.md5);
|
2015-08-30 21:15:31 +02:00
|
|
|
return {
|
|
|
|
positive: result.positives >= 5,
|
2016-06-06 15:37:00 +01:00
|
|
|
result,
|
2015-08-30 21:15:31 +02:00
|
|
|
};
|
2018-06-02 18:07:00 +00:00
|
|
|
};
|