Как обеспечить безопасное хранение для просмотра текста/файлов на сервере?
Если есть пермишен в бд, значит показываем, если нет, то нет, то выдаём ошибку.
Хотелось бы сделать через chmod(но как их тогда доставать?)/htaccess, ибо по ссылке файл будет доступен.
С htaccess я представляю как это реализовать, но хотелось бы выслушать мнение людей, который сталкивались с данной ситуацией и знают как лучше её решить.
Организуйте просмотр файла по временным ссылкам. Любой файл можно отдавать через php, а там уже и от БД подтянуть инфу не сложно, можно пользователю скачивать файл или нет
Дополню.
На одном проекте у меня есть договоры, которые может смотреть только его пользователь.
Договоры храню за пределами папки сайта, к этой папке имеет доступ только юзер, под которым запускатся апач и нджинкс. Есть файл на пхп, в который передается id договора, в скрипте идет проверка действительно ли он принадлежит текущему авторизованному пользователю и если да, то на пхп отдается файл.
Сергей, чего то все как то сложно, почему просто не сделать директорию где будут хранится папки названые ID пользователя, а уже в этих папках файлы без расширения, с hash файла в названии, а уже после проверки пользователя брать нужный файл кидать во временную папку откуда и отдавать пользователю файл с последующим удалением его из временной папки после, в БД хранить только hash файла и возможно его расширение если файлы разные.
Таким образом а) не кто не узнает где лежат сами файлы на сервере и они могут лежать за пределами сайта б) не кто не узнает название файлов
Kerm, как раз ваше "кручу-верчу, создаю временные папки" запутывает только людей. Если у вас своя рапидшара, где ссылки на файлы создаются тысячами - это имеет смысл. Если это хранение того, что сам пользователь (один!) иногда заходит посмотреть - схема, описанная Сергей, оптимальна и более чем надежна. Сделать и забыть.
Adamos, честно я не понял что там только один пользователь, смысл тогда вообще сайт писать когда можно на фтп или яндекс диске просто складировать файлы эти (для примера)..
Kerm, FTP - рудимент прошлого века. Яндекс.Диск - вываливание файлов в чужое облако. Здесь речь об обычном надежном веб-интерфейсе к собственному хранилищу. Он без проблем делается и контролируется, поэтому применять вместо него какие-то костыли просто глупо.