我有一个网站,使用 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
这将拒绝访问该文件夹中的任何文件。
笔记:
如果您有权访问 httpd 主服务器配置文件,则应完全避免使用 .htaccess 文件。使用 .htaccess 文件会降低 Apache http 服务器的速度。最好将 .htaccess 文件中包含的任何指令设置在目录块中,因为它将具有相同的效果,且性能更佳。
来源Apache HTTP 服务器教程:.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
Web 服务器:service lighttpd restart
来源Lighttpd 拒绝访问文件夹/目录。脚本已进行调整以满足问题的要求。