仅通过localhost限制执行

时间:2012-01-25 08:08:45

标签: php localhost

这可能是一个奇怪的问题。我在一个公共网站上有一个php文件,我可以访问该服务器。目前我们不需要为此文件执行设置Cron作业。但是我需要通过localhost限制此文件的执行。我对如何做到这一点没有任何确切的想法。有没有办法检测请求是否是localhost?我的意思是PHP。或者我应该通过服务器的安全设置或防火墙来处理这个问题吗?

2 个答案:

答案 0 :(得分:3)

我假设您的意思是希望能够仅从服务器执行脚本,而不是通过其他主机的Web执行脚本。您有两种选择:

选项1

将其移出public_html文件夹。没有理由你不应该采取这个选择,除非有什么阻止你这样做。在那种情况下,

选项2:

将整个代码包装在以下if语句

if (php_sapi_name() == 'cli')
{
   //your code
}

可替换地,

if (php_sapi_name() != 'cli')
   die();

//your code

这可确保您的脚本仅在从命令行调用时运行,而不是通过Web调用。

答案 1 :(得分:0)

你可以检查这样的IP地址:

if($_SERVER["REMOTE_ADDR"]!=$_SERVER["SERVER_ADDR"])
{ 
exit;
}