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