如果直接访问则拒绝加载 php 文件(nginx)

如果直接访问则拒绝加载 php 文件(nginx)

我不知道这是否可以实现...无论如何我都会尝试。我想拒绝在直接加载时查看某个文件夹中的 php 文件(将浏览器指向直接 URL),但前提是单击指向某个页面上的链接。这可以在 nginx 中使用位置来实现吗?这与安全性无关,因此如果该方法不是 100% 安全,那也不是问题。

编辑:好的,让我们添加一些详细信息。我有一个 VPS,我有一个带有登录框的页面。输入登录详细信息后,您将访问一个页面,其中包含指向 phpinfo/phpsysinfo/webmin 面板/apc 状态/nginx 状态的链接。因此,您可以在该页面上找到用于监控我的 VPS 统计信息的软件链接。我知道通过隐蔽性来实现安全性是不行的,但我更愿意让这些信息不被真正暴露。因此,我想拒绝访问这些页面(全部位于 1 个目录中),拒绝直接访问(但前提是您来自受登录框保护的页面)。

答案1

您所描述的是基于HTTP_REFERER标头的。如果您可以使用 Nginx 执行此操作,则必须使用 if 块执行此操作,这会很低效。我不确定您是否可以用其他任何方式执行此操作。但无论如何您都不应该这样做,因为正如您所说,它并不是真正安全的,只是隐藏的。

你应该看看这些:

http://wiki.nginx.org/HttpAuthBasicModule

http://wiki.nginx.org/HttpAuthDigestModule

摘要会更安全。基本会以明文形式传输用户/密码。但两者都比您描述的要安全得多,因为页面实际上受到保护。

答案2

看看这里也许就是你想要的:http://wiki.nginx.org/HttpAccessModule

以下将把所有直接请求重定向到 403 禁止页面。

error_page  403  http://example.com/forbidden.html;
location / {
  deny    all;
}

当然,如果您愿意,您仍然可以从另一个 PHP 脚本访问该代码,它只是阻止外部直接访问。

相关内容