У меня есть папка (/ files), и у меня есть множество файлов, которые пользователи могут загрузить. Я хочу, чтобы пользователи могли загружать только свои файлы и не могли видеть файлы других людей.Запретить каталог и файлы для определенного пользователя
Например:
Пользователь А может только просматривать и загрузки:
- file1.doc
- file2.jpg
пользователь B может только просматривать и загрузки:
- file3.txt
- file4.jpeg
Пользователь C может только просматривать и загрузки:
- file1.doc
- file2.jpg
- file3.txt
Моя идея состояла в том, чтобы поместить все файлы в одну папку, чтобы все пользователи знали, куда идти. Мой вопрос: могу ли я использовать .htaccess или мне нужно создавать скрипты PHP для этого? Что относительно безопасности (какой из них более безопасен)?
Благодаря
Можете ли вы подробно описать хэш-файл? – Tech4Wilco
Когда пользователь загружает файл, ваш скрипт может переименовать файл с помощью уникального ключа. Например, вы можете использовать хэш SHA1 имени пользователя и имени файла, а также некоторую соль (например, время загрузки); поэтому, если 'foo' загрузил' bar.jpg' на '201109291510', тогда вы можете переименовать этот файл в' SHA1 ('foo bar.jpg 201109291510') 'и в базе данных сохранить этот ключ с именем пользователя и original filename in plaintext ... – Xophmeister
... Затем при отображении списка файлов вашему пользователю вы можете запросить базу данных 'WHERE user = 'foo'', показывая имена файлов открытого текста на экране, но ссылаясь на хэшированные имена файлов (которому было бы трудно для кого-либо переборщить). – Xophmeister