首页 > 解决方案 > 如何验证或清理从 Node js 中的获取 URL 收到的用户输入

问题描述

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

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

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

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

}

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

提前致谢

标签: node.jsvalidationexpresssanitizationcheckmarx

解决方案


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来负责验证。


推荐阅读