繁体   English   中英

如何限制我的PHP脚本仅在本地主机请求时运行?

[英]How do I limit my PHP script to only run when requested by localhost?

我无法让我的php页仅在服务器本身请求时才能运行。

这就是我现在所拥有的:

if ($_SERVER['SERVER_ADDR'] == $_SERVER['REMOTE_ADDR']) {
        //process page
} else {
        $this->redirect('http://' . $_SERVER['HTTP_HOST'] . '/404');
}

但是,当我卷曲它时,它不会给出任何错误或完全不返回任何内容。 如果我删除支票,它会按预期吐出HTML。

我尝试回显这两个值,分别得到192.168.1.186和192.168.1.225。 我确实意识到它们是不同的(这是由服务器本身运行的),但是我该如何解决呢? 这段代码来自这个答案

您问题的标题意味着我可以提供与您的问题内容不太匹配的答案。

我对此的回应是,将整个脚本放在一个巨大的if语句中似乎有点不安全且无法维护。

如果其他计算机有可能运行您的脚本(例如,通过Web访问脚本),则需要这样的防护。

但是,如果服务器是唯一可以运行该脚本的计算机,为什么不将其放置在只有服务器可以访问它的地方呢? 例如,在Web可访问目录之上或在具有700权限的子目录中的一个目录级别。 或使用.htaccess限制访问。

这看起来既安全又可维护。

使用服务器配置来限制文件访问更容易,更好。 例如,您可以在特定目录中使用.htaccess文件,其内容如下:

order deny,allow
deny from all
allow from 127.0.0.1

拒绝除127.0.0.1(localhost)之外的所有流量。 当有人尝试从另一台计算机访问这些文件时,这将返回403错误。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM