Блокирование внешнего доступа к каталогу, но предоставление доступа SSI (или, как на самом деле работает директива FilesMatch?) - PullRequest
0 голосов
/ 17 декабря 2010

На старом сайте, где я использовал PHP, у меня был .htaccess в каталоге /noaccess следующим образом:

# /noaccess/.htaccess
<FilesMatch "^.*$">
order allow,deny
deny from all
</FilesMatch> 

И у меня был PHP-файл вроде

<html>
<body>
<?php include('noaccess/blah.ssi'); ?>
</body>
</html>

Это прекрасно работает, и содержимое blah.ssi видно.

Однако на моем текущем сайте я использую SSI и следующее:

<html>
<body>
<!--#include virtual="noaccess/blah.ssi" -->
</body>
</html>

не работает. Логи показывают unable to include "noaccess/blah.ssi". Удалите директиву FilesMatch, и она работает. Поэтому я явно не понимаю, как работает эта команда, я не знал, что она заблокирует сам Apache. Так как я могу заблокировать доступ из Интернета, но разрешить доступ SSI? (Я думал, что смогу (и должен) хранить вещи, к которым я не хочу получать доступ, за пределами public_html, но это, похоже, не работает ни в SSI, но в любом случае, даже если это так, мне интересно знаю, как это сделать).

Спасибо, Т.

Ответы [ 2 ]

0 голосов
/ 08 ноября 2014

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

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

Насколько я знаю по опыту, mod_include следует ограничениям клиента, поэтому вы не можете делать то, что хотите, с помощью директив apache.

Если вы хотите скрыть включенные файлы, вы можете отключить индексы каталогов с помощьюоднако директива Options -Indexes в вашем файле .htaccess.Кроме того, вы можете назвать названные файлы трудно угадываемым образом.

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

itorres@localhost$ uuid
6e8feb48-1a3b-11e0-a0e3-00505624a126
itorres@localhost$ vi noaccess/6e8feb48-1a3b-11e0-a0e3-00505624a126.ssi
...