запрет на доступ к файлу
Есть XML файл, как запретить к нему доступ из вне? в папке где он лежит есть .htaccess запрещающий её открытие. сам файл используется скриптом php в той же папке. но если запросить php скриптом файл xml с другого сайта, то его можно прочитать. как это запретить?
|
Цитата:
|
подставляю адрес файла xml и он его загружает.
|
подставляю адрес файла xml и он его загружает - это не php скриптом файл xml с другого сайта, это прямой доступ к файлу, и если тот кто пытается получить к нему доступ не получает 403 ошибку, значит .htaccess у вас не работает.
|
.htaccess запрещает только прямой доступ к катологу.
|
Как сторонний сервер получает содержимое этого файла, покажите код.
|
$dom->load('./vhod/xml_try.xml');
если в таком же файле, но на другом сайте я пишу $dom->load('http://site.ru/vhod/xml_try.xml'); то запросто читается этот файл. |
И это по вашему не прямой доступ? В итоге будет тот же самый 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 ничего не получит. |
у меня в .htaccess только прописано Options -Indexes, запрет на чтение файлов я не стал пока писать. Без использования .htaccess как-то можно это сделать?
|
Options -Indexes - это не запрет на доступ к файлам папки, эта опция не позволяет просмотреть список файлов папки. А открыть файл при этом можно без проблем.
Как запретить доступ ко всем папкам я написал, .htaccess как раз для этого (и еще для очень много полезного) и служит. |
если я пишу Deny from all то тогда и местные скрипты не могут открыть этот файл.
|
Цитата:
|
hostinger.ru т.е. в любом случае только через .htaccess?
|
В любом случае, и это забота Apache.
Я не о имени домена спрашиваю, а о локальном сервере или вы отлаживаете скрипты на удаленном? |
на удалённом, чтобы уж наверняка работало. спасибо за ответы.
|
Цитата:
Чтобы наверняка работало, нужно всего лишь иметь на локальном сервере версии PHP (или иного серверного языка), базы данных таких же версий что будут и на удаленном. Значит на удаленном сервере не работает .htaccess (если конечно вы все правильно делаете), обращайтесь в техподдержку и прикройте на время выяснения вопроса доступ к сайту вообще. |
помог следующий код в .htacess
<Files "*.xml"> deny from all </Files> может кому пригодится. все файлы .xml в папке с этим файлом .htacess стали доступны только для скриптов сайта. вместо .xml можно поставить любое расширение. |
Вам это ранее показывали, только на все файлы папки *.*.
|
я пробовал
order deny,allow deny from all allow from 195.135.232.70 поэтому, тогда подумал, что вы предлагали то же самое. |
Так надо о директивах .htaccess читать. А вообще, это не хорошо держать один один или файлы недоступные в папке, а не закрыть доступ к папке. Не забывайте, есть еще и robots.txt, зачем же так усложнять хранение. Уж точно есть закрытая папка на все файлы, из которой подключаются скрипты, конфигурации, разе не лучше там организовать хранение таких файлов?
|
robots.txt про это ничего не знаю. надо почитать.
в .htaccess папку я закрыл первой строкой. Options -Indexes <Files "*.xml"> deny from all </Files> |
Если папка, содержит файлы, которые доступны только владельцу, то ее закрывают всю:
<Files "*.*"> Директива: <Files "*.xml"> по логике своей означает, что в данной папке есть файлы других типов, которые доступны публично. И если так, то зачем? Подключаемые файлы функций, классы, шаблоны, исполняемые файлы для cron и т.п., все это помещается в закрытые папки, а в rorbots.txt прописывается директива не индексировать данные папки. Также эти папки не отражаются в карте сайта, это ресурсы системы, а не публичные данные. |
если закрыть таким образом файлы папки, то во вложенных в неё папках также надо размещать .htaccess с такими же директивами?
|
Нет, действие .htaccess распространяется на все вложенные документы, включая и вложенные папки.
|
попробовал написать дерективу <Files "*.*">, перестали открываться все скрипты php. пришлось запрет сделать на конкретные расширения.
|
Цитата:
Читайте - http://www.htaccess.net.ru/ |
Часовой пояс GMT +3, время: 15:02. |