Nginx:限制除 php 之外的所有访问

Nginx:限制除 php 之外的所有访问

我想拒绝访问某个特定文件夹(以及其中的所有文件),但我希望服务器内部的 php 文件可以访问该文件夹(及其文件)。这可能吗?这是我尝试的,但没有成功:

location /folder/ {
    allow 1.2.3.4;  # my server IP
    deny all;
    return 404;
}

答案1

您在 nginx 配置中设置的 ACL 适用于将由 nginx 提供的 http 请求。如果 PHP 想要访问其他文件,则不受 nginx 配置的限制。但是,PHP 可能会受到其自身配置的限制。

由于您想将一些安全性转移到 PHP,我想指出的是,PHP 可能有权访问配置文件等。因此,您应该确保不允许这样的代码向攻击者提供任何有用的信息:

http://my.server.acme.org/images.php?file=../../../etc/passwd

答案2

事实上,这对我有用:

location ~ folder/ {
            allow 1.2.3.4;  #server IP
            deny all;
    }

相关内容