Безопасная загрузка / отображение php и загрузка процессора с помощью php gd - PullRequest
1 голос
/ 16 августа 2011

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

Это то, что я имею до сих пор:

Загрузка:

  1. Проверьте тип файла (разрешены только jpg / jpeg, tiff, png)
  2. getimagesize () (допустимый файл изображения может содержать коды php, но по крайней мере я знаю, что онизображение)
  3. Запустите проверку на вирусы CamAV при загрузке.
  4. Сохраните изображение вне веб-каталога.Установите apache так, чтобы php не мог работать в папке
  5. Изменение размера изображения в зависимости от того, что я хочу

Получение:

  1. Используйте GD для воссоздания изображения через php

Мой вопрос: есть ли что-то, что я пропустил?Кроме того, это большая вычислительная мощность процессора (это очень расплывчатый вопрос, но, скажем, мне нужно отображать от 10 изображений на пользователя до 100 пользователей в секунду), которое приложение использовало бы для получения изображения с помощью gd.Я могу проверить это самостоятельно, но было бы здорово услышать от кого-то, кто имеет опыт работы с ним.Многие изображения (более 10) будут отображаться при каждом подключении, поэтому это важно.

Ответы [ 2 ]

0 голосов
/ 28 февраля 2012

Многие люди не получают безопасность, которую вы пытаетесь обеспечить. Хорошая работа, изображения являются источником вредоносного ПО в части комментариев даже реального изображения, поэтому вы правы, проверяя. GD, вероятно, будет использовать больше ресурсов, чем вы хотите. Вы могли бы хотеть использовать readfile вместо этого. Читая тип MIME, установите заголовок, а затем выведите его. Это будет скрывать это. Даже это может использовать много ресурсов. Также посмотрите на mod_xsendfile, ЕСЛИ вы можете установить его, это так же быстро, как передача файла, и будет делать то, что вы хотите сделать. Это поможет: http://blog.insicdesigns.com/2009/01/secure-file-upload-in-php-web-applications/

0 голосов
/ 11 октября 2011

AD.1 Получить расширение из файла и сохранить как rand uniq name 736217361236123.png AD.4 Отключить httacess в этом каталоге

...