какие типы файлов запрещено загружать - PullRequest
0 голосов
/ 01 апреля 2010

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

Ответы [ 4 ]

3 голосов
/ 01 апреля 2010

Вы не должны спрашивать, какие типы файлов запрещены (черный список), но какие типы файлов разрешены (белый список).

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

В первую очередь ваш список не должен включать:

  • PHP-файлы или любой другой файл языка сценариев
  • Исполняемые файлы
3 голосов
/ 01 апреля 2010

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

Как предлагает rogeriopvl, лучше создать белый список типов файлов, которые вы хотите разрешить.

Никогда не полагайтесь на тип MIME, отправляемый браузером. Всегда проверяйте тип файла самостоятельно, например, используя getimagesize () , если вы хотите разрешить только изображения.

Очень хорошее (но длительное) обсуждение этого вопроса можно найти здесь .

2 голосов
/ 01 апреля 2010

Проверка расширения загруженного файла - это еще не полдела. Есть проблемы с синтаксисом имени файла, проблемы с перехватом типа, проблемы с происхождением скрипта / плагина и многое другое.

Создание корзины для файлов, которая не ставит под угрозу приложение, - трудная , и это не легкое занятие. В качестве отправной точки рассмотрите возможность подачи файлов из другого [под] домена в приложение управления файлами, и не используйте пользовательское имя файла в качестве основы для имени файла в файловой системе сервера.

(Пожалуйста, прочитайте обсуждение по ссылке Пекки.)

1 голос
/ 01 апреля 2010

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

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

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

...