是否可以使用GET data在PHP中调用特定函数?
我有一个文件functions.php,它有多个函数,如:是否可以使用GET data在PHP中调用特定函数?,php,Php,我有一个文件functions.php,它有多个函数,如: function do_this(){ } function do_that(){ } 现在,我想做一些奇怪的事情,比如从URL调用该函数: functions.php?func=这样做吗 现在,我将这行代码添加到functions.php if(isset($_GET["func"])){ $func = $_GET["func"]; //How to call that function with name "$
function do_this(){
}
function do_that(){
}
现在,我想做一些奇怪的事情,比如从URL调用该函数:
functions.php?func=这样做吗
现在,我将这行代码添加到functions.php
if(isset($_GET["func"])){
$func = $_GET["func"];
//How to call that function with name "$func"
}
有什么好头脑吗?让我知道。如果那不可能,那也让我知道。因为我必须在我的工作中想出一种新的方法。您需要做的就是在获得$\u get变量时调用函数,如下所示:
if(isset($_GET["func"])){
$func = $_GET["func"];
$func();
}
我会让你知道这是可能的,因为我做到了。:)享受这在PHP中称为a。要格外小心!仅执行包含可接受值的数组(白名单)中的函数。否则,您将引入代码注入漏洞(严重的)是的。您可以使用call_user_func();建议您执行类似于
$allowed=array('do_this'、'do_that');如果(!in_array($\u GET['func',$allowed)){//ERROR,不要执行!}
这并不是所需的全部。需要更多的保护来限制对可接受函数的调用。例如,script.php?func=phpinfo
会将服务器信息转储到屏幕上。