我一直在阅读一个项目(不基于任何 PHP 框架),并且我在几乎每个响应用户请求($_GET
或$_POST
)的 PHP 文件上都遇到了以下(过程)代码。
if ($_REQUEST['a']){
$func="a_".$_REQUEST['a'];
if (function_exists($func)){
$func();
}else{
// redirect
}
}else{
// redirect
}
...
a_action_a() { ... }
a_action_b() { ... }
我有兴趣知道它作为函数调用机制是否足够安全(甚至更好的是威胁是什么)。这段代码能导致控制流或函数枚举吗?
程序 PHP 中的函数调用是否有适当的方法或建议的机制?