Рейтинг:
2
OriginalGriff
Вы не можете заблокировать все исполняемые файлы, или, по крайней мере, не легко: это просто двоичные файлы, которые будут содержать определенную последовательность байтов в начале, которая обычно не будет присутствовать в других данных - но возможно, что они могут быть в некоторых данных.
Видеть здесь: Список подписей файлов-Википедия[^] А затем посмотрите на начало файла загрузки, чтобы проверить его.
goswami.tarun
Спасибо... Есть ли какой-нибудь способ заблокировать файлы .bat? содержимое файла. msi имеет ту же последовательность, что и файл .ppt или. doc, так как же мы можем их различить?
OriginalGriff
Нет, и не файлы PowerShell тоже. Это просто текстовые файлы, содержащие команды. Вам придется довольно тщательно проанализировать их, чтобы проверить, являются ли они исполняемыми.
goswami.tarun
Окей... Спасибо.
Рейтинг:
0
Dave Kreskowiak
Почему?
Если ваш сервер или какой-то другой клиент не собирается выполнять их в будущем, какой в этом смысл?
Вы не можете запретить загрузку всех исполняемых форматов, за исключением самых очевидных случаев. Всегда найдется способ обмануть вашу систему, чтобы она приняла его.
goswami.tarun
Привет, Дэйв, мне нужно разрешить только загрузку документов.
Dave Kreskowiak
Итак, какие документы? Слово? PDF? ...?
goswami.tarun
Это те типы, которые я должен поддерживать :
".doc",".docx",".rtf",".txt",".cpy" , ".dot", ".dotx", ".dotm",".wpd",".xls",".xlsx",".csv",".xlk",".xltm", ".xltx",".xlsb",".xlsm",".xlt",".ods",".ppt",".pptx",".. ppsx",". pptm",". potx"
Dave Kreskowiak
Да, ты ни за что не ограничишься этим. Во-первых, вы должны были бы загрузить файл на сервер, сервер должен был бы подтвердить, что файл действителен, и либо удалить, либо сохранить файл оттуда.
Вы будете писать тонну кода для проверки каждого из этих типов файлов, и вы не получите 100% точности.
Нет никакого способа сделать это на стороне клиента.
goswami.tarun
Я тоже не ищу клиентское решение, так как это невозможно, у меня есть вся проверка на сервере.
Я хочу знать, как я могу ограничить исполняемые файлы с помощью проверки на стороне сервера.
Dave Kreskowiak
Ты не можешь! Мы пытались вам это сказать.
Вы можете получить прилично точный результат в простых случаях, но не можете получить 100% - ную точность вообще, даже близко.
Если у вас есть очень ограниченное количество приемлемых типов файлов, вы можете загрузить их в библиотеки, которые их обрабатывают, такие как OpenXML для Office 2007 и выше документов. Если загрузка документа успешно загружена соответствующей библиотекой, то файл, вероятно, хорош.
Вам понадобится библиотека для каждого типа файлов, который вы собираетесь разрешить.
Вы не можете использовать Office Interop в веб-приложении.
Вы не можете проверить RTF, TXT или любой другой формат текстового файла без большого количества аналитического кода, и даже тогда вы "перечисляете плохое" и никогда не достигнете 100% точности.