Checkmarx 扫描 - 如何修复 Missing_HSTS_Header 警告?

Joz*_*zef 5 javascript node.js secure-coding hsts checkmarx

在我的 Node.js 应用程序上运行 Checkmarx 扫描后,我收到了中等严重性 -> Missing_HSTS_Header的警告。这段代码仅返回metadata.json 文件的内容(突出显示为错误源的是“res.json”)。

const app = express();
app.get('/metadata', (req, res, next) => {
    res.json(JSON.parse(fs.readFileSync(path.join(__dirname, 'metadata.json'), 'utf8')));
});
Run Code Online (Sandbox Code Playgroud)

最初,这看起来很容易解决。例如,在此链接中,我找到了 3 个可能的解决方案 - https://github.com/cloudfoundry-incubator/service-fabrik-broker/issues/445

但问题是这些都不起作用。我尝试使用头盔,我使用了 hsts npm 包,我确实使用此命令在控制台中显式设置了 hsts 代码。

res.setHeader("Strict-Transport-Security", "max-age=31536000");
Run Code Online (Sandbox Code Playgroud)

然而,Checkmarx 仍然在抱怨。其他人也经历过这个吗?如果是,您是否知道可能出了什么问题以及为什么在线发布的所有解决方案都不起作用?谢谢

编辑:在这里,我在 Checkmarx 文档中找到了一种明确的方法,但警告不断出现 - https://github.com/Checkmarx/JS-SCP/blob/master/src/communication-security/ssl-tls.md

小智 5

我们对 checkmarx 也有同样的问题。显然,复选标记有一个错误,因为它期望所有内容都在一行上。

您可以通过设置标头并在一行中发送响应来解决此问题

res.setHeader("Strict-Transport-Security", "max-age=31536000").json(JSON.parse(fs.readFileSync(path.join(__dirname, 'metadata.json'), 'utf8')));