Проблемы с каталогом htaccess - PullRequest
0 голосов
/ 07 января 2011

Я пытаюсь сохранить папку приватной, но разрешить html-файлу доступ к содержимому этого файла.

Например, .htaccess в личной папке содержит
заказ отказать, разрешить
отрицать все
разрешить от 127.0.0.1

Внутри находится изображение с именем «hidden.jpg»

За пределами личной папки я хочу создать HTML-файл со строкой
<img src='private/hidden.jpg'>

К сожалению, я не вижу изображения. Есть идеи о лучшем способе сделать это? Я также попытался поместить файл за пределы веб-каталога и получить его с помощью file_get_contents (), но это не позволяет правильно захватить весь файл (проигрыватель HTML5 прерывается при воспроизведении файлов .ogv, к которым осуществляется доступ таким способом)

Любая помощь очень ценится.

Ответы [ 3 ]

1 голос
/ 07 января 2011

Попытка получить доступ к файлу через документ HTML - это то же самое, что и получить к нему доступ напрямую.Если у вас нет доступа к нему напрямую, вы также не сможете поместить его в тег <img>.

Насколько велик файл .ogv?file_get_contents() потерпит неудачу, если файл слишком большой, потому что он пытается прочитать весь файл в память.Попробуйте readfile().

Но я все еще не уверен, чего вы здесь добиваетесь.Даже если вы использовали простой PHP-скрипт для захвата файла вне веб-каталога, любой, кто знал путь к этому PHP-скрипту, мог бы получить этот файл так же легко, как если бы он был общедоступным.Это за какой-то логин?

0 голосов
/ 03 августа 2015

Старый вопрос, но это может кому-то помочь. Если вы добавите файл .htaccess в каталог и поместите его в него:

Options -Indexes

Это позволит вам получить доступ к содержимому каталога по отдельному URL, но не просматривать сам каталог.

0 голосов
/ 07 января 2011

Ваше сообщение немного расплывчато, поэтому я отвечу на него как можно лучше.

Вы должны помнить, что HTACCESS на стороне сервера .А HTML-запрос (например, тег IMG) на стороне клиента , что означает совершенно иной HTTP-запрос для получения этого тега изображения.Разрешение от 127.0.0.1 позволяет серверу открывать его, но не любым клиентам (поскольку браузер, если только он не на сервере, всегда будет другим IP-адресом).

Ваш код HTACCESSразрешит доступ к изображению только с сервера (что бессмысленно).HTACCESS должен фильтровать / контролировать / редактировать HTTP-запросы , что делает браузер.Как таковая, ваша конфигурация HTACCESS не позволит кому-либо просматривать изображение.

То, что вы пытаетесь выполнить, невозможно;сервер не будет знать, какой запрос от какого HTML-файла, и всегда будет всегда, всегда, всегда способы подделать этот запрос, чтобы дать кому-то доступ к этому изображению.

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

...