2

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

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

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 Запретить доступ к папкам / каталогам. Скрипт был изменен в соответствии с требованиями вопроса.


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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .