Рекомендации по хранению загруженной информации о фото в базе данных - PullRequest
2 голосов
/ 16 сентября 2011

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

Мы подумали о том, чтобы поместить в базу данных MySQL ссылку на изображение с уникальным идентификатором для изображения и внешним ключом для идентификатора пользователя.

Но мне было интересно, что будет самым безопасным методом.

  1. Должны ли мы сохранить название картинки или переименовать ее?
  2. Должны ли мы хранить все изображения в одной папке или иметь отдельную папку для каждого уникального идентификатора пользователя?.
  3. Если мы переименуем картинку, должны ли мы просто начать с уникального идентификатора картинки? (От 1 до XXXX)

Безопасно: любой тип эксплойта с вредоносным именем файла Самый быстрый: иметь 1 папку, а затем папку XXXXX

Ответы [ 2 ]

2 голосов
/ 16 сентября 2011

Для загруженных изображений я бы переименовал изображение в userid-imageid, чтобы изображение имело имя, например, 123-5554.jpg, это сгруппировало бы их по идентификатору пользователя, сохраняя их в той же папке (используя сортировку), и предоставив уникальное имя для каждого изображения.

Если вы не переименуете изображение, кто-то может легко загрузить изображение с именем picture.jpg более одного раза.

0 голосов
/ 16 сентября 2011

Я бы изменил имя файла каждого изображения на что-то уникальное.Каждое изображение должно иметь уникальный идентификатор в таблице.Затем вы можете установить внешний ключ на уникальный идентификатор изображения для идентификатора пользователя.

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

...