2015-10-04 3 views
0

H1! Я думал о найме хостинга для создания веб-сайта, который я разработал, на этом сайте есть система входа в систему. Когда пользователи будут показывать ссылки на документы, которые они могут видеть (ссылка).Заблокировать доступ к файлам с помощью php

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

То, как я это сделал, было положено путь к файлу по ссылке href. Есть еще один способ проверить доступ с php?

Спасибо!

+0

сайт имеет регистрацию в системе, вы можете поставить проверить, установка 'session' – Shehary

ответ

1

Мое решение этой проблемы состояло в том, чтобы написать .htaccess, который отрицает весь прямой доступ (deny all) к папке.

после этого написать сценарий, что соли и хэши имя файла и добавить его к звену, где ваш файл PHP будет находиться в GetParam, а также само название (например. /get-file?name=[filename here]&hash=[hash here])

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

надеюсь, что это поможет!

EDIT: вам необходимо будет отправить заголовки Content-type:[file mime] и Content-Disposition: attachment; filename="[filaneme]" при отправке файла, после которого вы можете открыть файл, например. с echo file_get_contents();.

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

Смежные вопросы