Запретить пользователям открывать файлы через 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Модуль используется для запрета доступа к файлам и каталогам.
редактировать
/etc/lighttpd/lighttpd.confфайл следующим образом:vi lighttpd.confДобавьте следующий код для включения mod_access:
server.modules += ( "mod_access" )Добавьте регулярное выражение следующим образом:
# deny access to /settings $HTTP["url"] =~ "^/settings/" { url.access-deny = ("") }Сохраните и закройте файл.
Проверьте синтаксические ошибки:
lighttpd -t -f /etc/lighttpd/lighttpd.confЕсли ошибок нет, перезапустите
lighttpdвеб сервер:service lighttpd restart
Источник Lighttpd Запретить доступ к папкам / каталогам. Скрипт был изменен в соответствии с требованиями вопроса.