Help us learn about your current experience with the documentation. Take the survey.
服务端代码注入 (NodeJS)
Description
目标应用被发现存在代码注入漏洞。恶意攻击者可以注入任意 JavaScript 代码在服务器上执行。这可能导致系统完全被攻破,通过访问存储的密钥、注入代码来接管账户,或执行操作系统命令。
Remediation
切勿将用户输入直接传递给将字符串数据作为代码执行的函数,例如 eval、setTimeout 或 setInterval。向这些方法传递字符串值几乎没有任何好处,因此最佳建议是用更安全的动态评估逻辑实现来替换当前逻辑。一种替代方案是将函数或方法存储在 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 |