Как работать с загруженными пользователем изображениями [закрыто]

1

Я использую Restlet в качестве бэкэнда, пытаясь создать небольшое веб-приложение.

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

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

Если я не храню изображения в общедоступном веб-каталоге, где я должен их хранить и как их защитить?

Мой сервер Ubuntu Server 12.04 заранее спасибо

Кстати, какой совет, как я должен обрабатывать изображения при загрузке? Я пытаюсь преобразовать все форматы в PNG и изменить его размер

Мэтью Ян
источник

Ответы:

2
  1. Проверьте каждое изображение, если вы используете PHP, вы можете вызвать getimagesize ()
  2. Вы можете сохранять изображения внутри www, но вы можете отключить индексирование каталогов, или,
  3. Сохраняйте изображения вне www, тогда вам нужно прочитать изображения внутри себя, как чтение файла.
  4. Также лучше отключить PHP в каталоге, где хранятся изображения.
  5. Я также предпочел бы проверить изображение при загрузке с помощью getimagesize (), я уверен, что если вы используете библиотеки изображений, вы можете обнаружить недопустимые типы изображений в случае, если внедрен вредоносный код.
Akam
источник
Рестлет для Java, ничто не упомянуло PHP ... # 2 звучит неплохо, если имена файлов генерируются случайным образом.
grawity
Отлично, большое спасибо. Well Restlet - это фреймворк веб-API Java, но примеры php дают некоторую информацию. Я думаю, что я просто сохраню изображения в папке www и отключу просмотр папок, сгенерирую случайное имя изображения для каждого идентификатора и сохраню его в БД
Мэтью Ян