Запретить пользователям открывать файлы через URL на веб-сервере lighttpd

У меня есть веб-сайт, который использует JSON-файлы для хранения настроек. Эти файлы расположены в подпапках, поэтому /settings/settings.json,

Если я введу IP-адрес в локальной сети, как это http://192.168.1.1/settings/settings.json Я могу видеть содержимое JSON. Мне нужно как-то предотвратить это, и я думаю, что смогу сделать это через файл.htaccess, но не уверен. Доменное имя (192.168.1.1) динамична и может время от времени меняться, поэтому мне нужно найти какой-то динамический способ ее предотвращения.

1 ответ

Я могу видеть содержимое JSON. Мне нужно как-то предотвратить это

Если вы используете Apache, то вы можете использовать:

  • .htacess файл

  • Directory блокировать в httpd.conf (лучшая производительность)

Если вы используете Lighttpd, тогда вы можете использовать:

  • url.access-deny директива в lighttpd.conf

Смотрите ниже инструкции.


Apache - Использование .htacess файл

Создать .htaccess файл в settings каталог со следующим содержанием:

deny from all

Это запретит доступ к любому файлу в этой папке.

Замечания:

Вам следует избегать использования файлов.htaccess полностью, если у вас есть доступ к файлу конфигурации основного сервера httpd. Использование файлов.htaccess замедляет работу вашего http-сервера Apache. Любая директива, которую вы можете включить в файл.htaccess, лучше задана в блоке Directory, так как она будет иметь тот же эффект с лучшей производительностью.

Исходный учебник по HTTP-серверу Apache: файлы.htaccess


Apache - Использование Directory блокировать в httpd.conf

Добавьте следующее к вашему httpd.conf файл

<Directory "/settings">
  Require all denied
</Directory>

Lighttpd - Использование url.access-deny директива в lighttpd.conf

mod_access Модуль используется для запрета доступа к файлам и каталогам.

  1. редактировать /etc/lighttpd/lighttpd.conf файл следующим образом:

    vi lighttpd.conf
    
  2. Добавьте следующий код для включения mod_access:

    server.modules += ( "mod_access" )
    
  3. Добавьте регулярное выражение следующим образом:

    # deny access to /settings
    $HTTP["url"] =~ "^/settings/" {
         url.access-deny = ("")
    }
    
  4. Сохраните и закройте файл.

  5. Проверьте синтаксические ошибки:

    lighttpd -t -f /etc/lighttpd/lighttpd.conf
    
  6. Если ошибок нет, перезапустите lighttpd веб сервер:

    service lighttpd restart
    

Источник Lighttpd Запретить доступ к папкам / каталогам. Скрипт был изменен в соответствии с требованиями вопроса.


Дальнейшее чтение

Другие вопросы по тегам