Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   запрет на доступ к файлу (https://javascript.ru/forum/misc/58010-zapret-na-dostup-k-fajjlu.html)

guru_nemo 30.08.2015 18:02

запрет на доступ к файлу
 
Есть XML файл, как запретить к нему доступ из вне? в папке где он лежит есть .htaccess запрещающий её открытие. сам файл используется скриптом php в той же папке. но если запросить php скриптом файл xml с другого сайта, то его можно прочитать. как это запретить?

laimas 30.08.2015 18:11

Цитата:

Сообщение от guru_nemo
php скриптом файл xml с другого сайта

Это как?

guru_nemo 30.08.2015 19:03

подставляю адрес файла xml и он его загружает.

laimas 30.08.2015 19:26

подставляю адрес файла xml и он его загружает - это не php скриптом файл xml с другого сайта, это прямой доступ к файлу, и если тот кто пытается получить к нему доступ не получает 403 ошибку, значит .htaccess у вас не работает.

guru_nemo 30.08.2015 19:54

.htaccess запрещает только прямой доступ к катологу.

laimas 30.08.2015 20:00

Как сторонний сервер получает содержимое этого файла, покажите код.

guru_nemo 30.08.2015 20:22

$dom->load('./vhod/xml_try.xml');
если в таком же файле, но на другом сайте я пишу $dom->load('http://site.ru/vhod/xml_try.xml'); то запросто читается этот файл.

laimas 30.08.2015 20:34

И это по вашему не прямой доступ? В итоге будет тот же самый GET запрос, что и из адресной строки браузера.

Скрипты сайта на котором находится xml_try.xml также получают его посредством прямого доступа, но они имеют на него права, они его владельцы. А .htaccess закрывает внешний прямой доступ, и при этом не важно чем будет сформирован url запроса.

Локальный сервер у вас есть? Создайте в одном домене, условно А, файл в закрытой папке:
.htaccess
<Files *.*>
Deny from all
</Files>

Из другого домена, условно B, попробуйте получить, можно просто:

echo file_get_contents("http://domainA/folder/file.ext");

Если на вашем локальном сервере работает .htaccess, то кроме ошибки 403 домен B ничего не получит.

guru_nemo 30.08.2015 20:48

у меня в .htaccess только прописано Options -Indexes, запрет на чтение файлов я не стал пока писать. Без использования .htaccess как-то можно это сделать?

laimas 30.08.2015 21:17

Options -Indexes - это не запрет на доступ к файлам папки, эта опция не позволяет просмотреть список файлов папки. А открыть файл при этом можно без проблем.
Как запретить доступ ко всем папкам я написал, .htaccess как раз для этого (и еще для очень много полезного) и служит.


Часовой пояс GMT +3, время: 13:26.