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

链接