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

261
Matthew Yang

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

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

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

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

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

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

1

1 ответ на вопрос

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

Похожие вопросы