Help us learn about your current experience with the documentation. Take the survey.
服务器端代码注入(PHP)
描述
目标应用被发现存在代码注入漏洞。恶意攻击者可以注入任意 PHP 代码在服务器上执行。这可能导致系统完全被攻破,例如访问存储的密钥、注入代码接管账户,或执行操作系统命令。
修复建议
切勿将用户输入直接传递给将字符串数据作为代码执行的函数,如 eval。将字符串值传递给 eval 几乎没有任何好处,因此最佳建议是用更安全的方式替换当前逻辑,实现动态评估用户输入的逻辑。一种替代方案是使用 array(),将预期的用户输入存储为数组键,并使用该键作为查找来执行函数:
$func_to_run = function()
{
print('hello world');
};
$function_map = array();
$function_map["fn"] = $func_to_run; // 在此处存储额外的输入到函数映射
$input = "fn";
// 查找 "fn" 作为键
if (array_key_exists($input, $function_map)) {
// 运行存储在 "fn" 数组哈希值中的 $func_to_run
$func = $function_map[$input];
$func();
} else {
print('无效输入');
}详情
| ID | 聚合 | CWE | 类型 | 风险 |
|---|---|---|---|---|
| 94.1 | false | 94 | Active | high |