2

我正在尝试对我的代码进行 checkmarx 扫描。但是我遇到了这个错误:这个元素的值然后在没有经过适当的清理或验证的情况下流过代码,并最终在方法中显示给用户。然后在第 145 行........这可能会启用交叉站点脚本攻击。

我正在使用 express js,其中有一种方法可以接受来自服务器的请求和响应。

函数方法1(请求,响应){

常量参数 = request.query ; ------> 这一行给出了一个漏洞

}

请帮我尽快解决这个问题。已经搜索了解决方案,但只有与 java 或 .net 相关的解决方案。我需要 node/express js 的解决方案。

提前致谢

4

2 回答 2

1

request.query您必须通过单独创建和处理每个变量来验证您使用的每个参数,而无需直接访问。

例如,您要检查 customerId 是否以 a 开头c并且 contactNumber 是一个数字:

const customerId = request.query.customerId;
if (!customerId || /^c\d+/.test(customerId)) {
   return replyWrongParameters(response);
}
const contactNumber = parseInt(request.query.contactNumber);
if (isNaN(contactNumber)) {
  return replyWrongParameters(response);
}

如果您想使用外部库,您可能需要使用https://www.npmjs.com/package/express-validation来负责验证。

于 2018-06-05T15:55:34.967 回答
0

来自 OWASP 的跨站脚本 (XSS)页面:

跨站点脚本 (XSS) 攻击是一种注入,其中恶意脚本被注入到其他良性和受信任的网站中。当攻击者使用 Web 应用程序将恶意代码(通常以浏览器端脚本的形式)发送给不同的最终用户时,就会发生 XSS 攻击。允许这些攻击成功的缺陷非常普遍,并且发生在 Web 应用程序在其生成的输出中使用来自用户的输入而不对其进行验证或编码的任何地方。

要深入了解如何避免跨站点脚本漏洞,强烈建议查看 OWASP 的XSS(跨站点脚本)预防备忘单页面。

对于您的特定 node.js 问题,您可以使用像漂白剂这样的专用消毒剂。

祝你好运。

于 2018-06-05T08:42:50.047 回答