2015-11-17 2 views
0

Я занимаюсь веб-страницами на сервере LAMP под управлением Apache2 и задавался вопросом, можно ли сделать каталог доступным только для ваших веб-страниц, а не извне?LAMP - сделать каталог доступным только для определенных веб-страниц

Пример сценария:

Справочник для защиты: dir1, содержащие изображения (JPG, PNG)

Мой собственный веб-страница: mypage.html, который вызывает образы из dir1

Мой сайт: www.myweb.com, который содержит и dir1 и mypage.html

В настоящее время файлы внутри сайта могут быть доступны через www.myweb.com/dir1/somefile.jpg или по телефону mypage.html

Я хотел бы, только быть доступным по телефону mypage.html

Я попробовал следующее:

  • модификации .htaccess запретить доступ типов изображений

    <files "*.jpg"> 
        deny from all 
    </files> 
    

(не работает, потому что mypage.html не может получить доступ к нему либо)

  • Изменить apache2 конф файл с:

    <Directory /var/www/dir1> 
        AllowOverride None 
        <Limit GET POST OPTIONS> 
        Order deny,allow 
        Deny from all 
        </Limit> 
    </Directory> 
    

    (это фактически полуработало, так как оно позволяло мне писать в каталог, но не читать, возможно, это можно изменить, чтобы разрешить запросы co мина из внутренних веб-страниц, чтобы пройти?)

Я думаю сделать вывод, есть ли способ, чтобы получить Apache2, чтобы принимать только запросы на доступ к каталогу, если он имеет определенный адрес вашего выбора?

Заранее спасибо.

+1

Я считаю, что это то, что вы ищете. http://stackoverflow.com/a/1245917/330987 –

+0

Я посмотрю на это спасибо. – publicknowledge

ответ

0

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

<img src='somefile.php?query=xxx' alt='pic'> 

и где в somefile.php I у них есть имя файла img, созданное из запроса выше.

echo file_get_contents($imgresource); 

Служа изображение из скриптов и блокирует этот скрипт от вызова без соответствующих учетных данных сессий, печенье и блокирование IP, есть некоторые безопасности установлены.

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

+1

Если бы я знал, что вы используете PHP, я бы предложил этот подход. Однако вы не отметили этот вопрос как php или имели какие-либо php-примеры. Рад, что вы нашли что-то для использования. –

+0

Извините. Я не указал php, потому что исходная проблема, которую я вложил в нее, не была специфичной для сценариев. Спасибо за подтверждение подхода. – publicknowledge

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