Надежно хранить фото на веб-сервере php

У меня есть веб-проект, в котором я храню фотографии пользователей. Эти фотографии находятся на диске, а не в базе данных, чтобы избежать проблем с производительностью. Когда пользователь загружает фотографию, она проверяется, и я добавляю к ее имени уникальный идентификатор с помощью php-функции uniqid с большим количеством символов. Пример: "IMG_0001.5edee3c9e293b1.25237113.png". Поскольку структура папок моего веб-сайта не является секретной (да, это веб-сервер), и я храню пользовательские данные в этом каталоге, любой, у кого есть правильный URL-адрес, может получить к нему доступ. Мне было интересно, достаточно ли безопасен этот метод. Действительно ли использование uniqid безопасно? Поскольку это псевдослучайное, может ли кто-нибудь использовать системное время, чтобы угадать имя изображения, используя общее имя изображения плюс уникальный идентификатор на основе системного времени, и получить фотографии пользователя, даже если я не дал им URL-адрес? Если это так, у кого-нибудь есть решение для их безопасного хранения на диске?

Спасибо


person Agent boubou    schedule 15.06.2020    source источник
comment
Переместите их за пределы вашей веб-папки.   -  person ADyson    schedule 16.06.2020


Ответы (1)


Защита веб-серверов стоит целой книги. Есть много шагов, которые вы можете предпринять, ограниченный доступ по IP / сети. Брандмауэры. Безопасный FTP. И т.п.

Один из них — использовать ваш файл .htaccess, чтобы запретить доступ любому, кто пытается напрямую получить доступ к вашим папкам. Как подробно описано здесь в предыдущем аналогичном вопросе:

Как защитить папки в public_html от посетителей

Насколько мне известно, присвоение изображениям случайных символов не сделает их безопасными. Если вы отображаете изображения на веб-странице, пользователь все равно может щелкнуть их правой кнопкой мыши и «сохранить». Неважно, как вы их называете. Если они получат доступ к папке с ними, они могут просто перечислить их и получить все имена...

Для меня лучший способ — остановить несанкционированный доступ к папке, содержащей их.

Надеюсь, это поможет.

person Phfog    schedule 15.06.2020
comment
Извините, если я был неясен, мой вопрос был больше о функции uniqid. Я использую систему входа в систему, где пользователь может получить доступ к фотографиям, мой вопрос в том, что, поскольку моя структура папок является общедоступной, например: Data/0001 и т. можно угадать, используя системное время или прогнозы? - person Agent boubou; 16.06.2020