Какие проблемы с безопасностью позволяют пользователям загружать видео и текстовые документы? - PullRequest
1 голос
/ 06 декабря 2010

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

Существуют ли какие-либо проблемы с безопасностью, позволяющие пользователям загружать видео и текстовые документы?Безопасность намного сложнее, когда пользователи могут загружать файлы с размером видео?Есть ли какие-то конкретные расширения файлов, на которые я должен обратить внимание?

Ответы [ 5 ]

1 голос
/ 06 декабря 2010

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

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

  1. Никогда не выполняйте то, что загружено
  2. Если вы считаете, что это необходимо, проверьте их на вирусы.
1 голос
/ 06 декабря 2010

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

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

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

Вы должны проверить содержимое файлов - никогда не полагаться на расширение или тип MIME, сообщенные клиентом. Их легко подделать.

0 голосов
/ 12 декабря 2010

Чтобы ответить на ваш вопрос, вот мета-атака:

  1. плохой парень загружает двоичный файл на ваш сервер, возможно, обманывая ваши фильтры, сжимая файл и изменяя расширение на .avi
  2. ошибка эксплойта в скрипте CGI для распаковки avi из # 1
  3. ошибка эксплойта в другом CGI для выполнения файла из # 2 -> установленный бэкдор
  4. доступ к бэкдору и установленный руткит для скрытия всех свидетельств шагов1,2,3

Некоторое отклонение от вышесказанного обычно происходит при взломе серверов.

0 голосов
/ 06 декабря 2010

Сделать загрузку ДЕЙСТВИТЕЛЬНО безопасно.

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

  • расширение файла (как вы уже упоминали)
  • mimetype
  • размер файла
  • в зависимости от пользователей: возможно, проверьте загрузки с помощью ClamAV ...
0 голосов
/ 06 декабря 2010

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

...