Сохранение расширения загружаемого изображения - PullRequest
0 голосов
/ 25 февраля 2011

Необходимо ли отказаться от расширения загруженного изображения при сохранении его выше корневого документа? Я думаю о том, чтобы вызвать изображение через img.php?i=thisImage.png, где внутри имя изображения проходит через mb_split('.',$_GET['i']), а последнее используется как внутри header('Content-Type: image/$img[1]'). По моему личному мнению, это не имеет значения, будь то img.php?i=thisImage.png или img.php?i=thisImage, но я всегда за ужесточение мер безопасности.

Кроме того, каковы некоторые из лучших методов, кроме PHP-прокси с Content-Type: Content-Length: и обслуживания изображений из корневого каталога документа? Я слышал смешанные мнения о копировании изображения из источника через IM, но, как я уже сказал, это смешанные мнения.

1 Ответ

1 голос
/ 25 февраля 2011

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

Метод, который я использую (в KFM и в моей CMS), заключается в использовании mod_rewrite для перенаправления вызовов в скрипт, который будет извлекать файл для вас.

Например, если у вас есть URL /f/file.jpg, но файл на самом деле находится в ../files/file.jpg, то вы используете mod_rewrite, чтобы «перехватить» запрос и перенаправить его в скрипт , Например:

RewriteRule ^f/(.*)$ /get-file.php?filename=$1 [L]

затем напишите get-file.php, используя что-то вроде readfile (), чтобы пропустить файл через

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