Help us learn about your current experience with the documentation. Take the survey.

服务端代码注入 (NodeJS)

Description

目标应用被发现存在代码注入漏洞。恶意攻击者可以注入任意 JavaScript 代码在服务器上执行。这可能导致系统完全被攻破,通过访问存储的密钥、注入代码来接管账户,或执行操作系统命令。

Remediation

切勿将用户输入直接传递给将字符串数据作为代码执行的函数,例如 evalsetTimeoutsetInterval。向这些方法传递字符串值几乎没有任何好处,因此最佳建议是用更安全的动态评估逻辑实现来替换当前逻辑。一种替代方案是将函数或方法存储在 Map 中,可以使用键进行查找。如果键存在,则可以执行该函数。

const function_map = new Map();

function_map.set('fn', function() {
    console.log('hello world');
})

const input = 'fn2';

const fn = function_map.get(input)

if (fn) {
    fn();
} else {
    console.log('invalid input');
}

Details

ID Aggregated CWE Type Risk
94.4 false 94 Active high