Проверка типа содержимого загруженного файла с использованием ASP.Net - PullRequest
0 голосов
/ 26 февраля 2009

Как проверить тип содержимого файлов без использования расширения файлов или типа mime с помощью ASP.Net.

Я не хочу использовать тип mime, поскольку он определяется расширением файла.

Ответы [ 3 ]

1 голос
/ 26 февраля 2009

Это действительно зависит от типа файла. Для многих типов файлов вы можете проверить заголовок файла, который обычно предшествует первому 0 символу в файле. Раньше у меня был какой-то код, который проверял типы изображений, так что я мог бы найти его где-нибудь.

Но есть типы файлов, которые не имеют такой формы заголовка, как XML (да, это дешевый пример, но мне было легко подумать; ->). Я полагаю, что у всех типов графики будет заголовок, как и у других типов двоичных файлов.

Как уже упоминал Эндрю, заголовок не на 100%. Но вряд ли это будет хакерская атака, если файл «искажен». Скорее всего, поврежденная загрузка или загрузка поврежденного файла.

1 голос
/ 26 февраля 2009

Вы можете использовать функцию FindMimeFromData () в UrlMon.dll (используя pinvoke).

См. эту страницу для примера и эту страницу MSDN для документации функции.

0 голосов
/ 26 февраля 2009

Не существует универсального способа проверки файла с данным типом расширения.

Вы можете создать белый список форматов (png, jpg, zip и т. Д.) И проверить заголовок файла, чтобы определить, соответствует ли он ожидаемому формату.

Даже это не является надежным, хотя само содержимое файла может быть искажено таким образом, который станет очевидным только при попытке его загрузки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...