在我的服务器上创建一个local.php页面
我正在运行一些PHP web应用程序,它们基本上是管理MySQL数据库内容(添加、删除和更新)的表单。现在我希望能够以编程方式插入数据,但我已经将所有逻辑都放在PHP中(数据库端没有验证),我希望重用我拥有的PHP逻辑 我曾考虑使用一个新的URI来接收查询字符串中的产品参数,但我只希望在从服务器内部调用端点时该端点可用(以避免外部用户调用它)在我的服务器上创建一个local.php页面,php,apache,Php,Apache,我正在运行一些PHP web应用程序,它们基本上是管理MySQL数据库内容(添加、删除和更新)的表单。现在我希望能够以编程方式插入数据,但我已经将所有逻辑都放在PHP中(数据库端没有验证),我希望重用我拥有的PHP逻辑 我曾考虑使用一个新的URI来接收查询字符串中的产品参数,但我只希望在从服务器内部调用端点时该端点可用(以避免外部用户调用它) 我在Ubuntu 12.04中运行Apache服务器。我希望我解释得很好您可以看看$\u SERVER['REMOTE\u ADDR'],它是连接到php
我在Ubuntu 12.04中运行Apache服务器。我希望我解释得很好您可以看看
$\u SERVER['REMOTE\u ADDR']
,它是连接到php脚本的客户端的地址
if ($_SERVER['REMOTE_ADDR'] == '127.0.0.1') {
// connection from localhost, proceed
} else {
// connection from the outside, deny
header('403 Forbidden');
echo "You are not allowed to be here.";
die();
}
考虑到如果您在同一台机器中有一个反向代理,那么到脚本的所有连接都将来自该代理,并且您将无法知道它们是来自本地主机还是来自另一台主机
来自@x4rf41的注释也很好,可以从Web服务器层管理注释(尽管反向代理也有同样的问题)
另一个选项是命令行脚本,而不是网页,您可以将数据作为参数传递给脚本:
#!/usr/bin/env php
<?php
// total number of params is in $argc (minus 1, for the script name)
// param 1 in $argv[1]
// param 2 in $argv[2]...
// argv[0] is reserved for the name of the script
if ($argc != 5) {
fprintf("STDERR: %s param1 param2 param3 param4\n", $argv[0]);
exit(1);
}
// do your logic here
#/usr/bin/env-php
您可以查看$\u SERVER['REMOTE\u ADDR']
,它是连接到php脚本的客户端的地址
if ($_SERVER['REMOTE_ADDR'] == '127.0.0.1') {
// connection from localhost, proceed
} else {
// connection from the outside, deny
header('403 Forbidden');
echo "You are not allowed to be here.";
die();
}
考虑到如果您在同一台机器中有一个反向代理,那么到脚本的所有连接都将来自该代理,并且您将无法知道它们是来自本地主机还是来自另一台主机
来自@x4rf41的注释也很好,可以从Web服务器层管理注释(尽管反向代理也有同样的问题)
另一个选项是命令行脚本,而不是网页,您可以将数据作为参数传递给脚本:
#!/usr/bin/env php
<?php
// total number of params is in $argc (minus 1, for the script name)
// param 1 in $argv[1]
// param 2 in $argv[2]...
// argv[0] is reserved for the name of the script
if ($argc != 5) {
fprintf("STDERR: %s param1 param2 param3 param4\n", $argv[0]);
exit(1);
}
// do your logic here
#/usr/bin/env-php
不要对自己的服务器执行完整的HTTP请求。这是对资源的毫无意义的浪费,同时也引发了一系列安全问题
重写代码,使其能够作为函数正确调用,然后只需执行以下操作:
functions.php:
<?php
function do_whatever_it_is_you_want() {
echo 'yo';
}
不要对自己的服务器执行完整的HTTP请求。这是对资源的毫无意义的浪费,同时也引发了一系列安全问题
重写代码,使其能够作为函数正确调用,然后只需执行以下操作:
functions.php:
<?php
function do_whatever_it_is_you_want() {
echo 'yo';
}
您可以使用htaccess限制对某些文件或目录的访问。首先看看这个:您还可以选中$\u SERVER['REMOTE\u ADDR']
您可以从命令行运行PHP,或者您可以创建一个只在localhost上侦听的虚拟主机,以阻止外部任何人访问它。您可以使用htaccess限制对某些文件或目录的访问。首先看一下这个:您还可以检查$\u SERVER['REMOTE\u ADDR']
您可以从命令行运行PHP,或者您可以创建一个只在本地主机上侦听的虚拟主机,以阻止外部任何人访问它。因此,我可以使用一个与服务器本身完全解耦的.PHP脚本,“include”add操作所需的server.php文件,并像通常的脚本一样调用它(传递参数ovr命令行,在脚本中解析它们并调用要添加到数据库的方法)?@rnunes是的,这就是我可以将.php脚本与服务器本身完全解耦的想法,“include”add操作所需的server.php文件,并像通常的脚本一样调用它(传递参数ovr命令行,在脚本中解析它们并调用要添加到数据库的方法)?@rnunes是的,这就是想法