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