如何避免在包含 URL 的字段上注入 CSV?

How to avoid CSV injection on fields containing URLs?

我正在尝试保护我的应用程序以防止 CSV 注入。当用户下载 CSV 导出文件时会出现此漏洞。

我现在的处理方式是去掉字符:= + - @

https://owasp.org/www-community/attacks/CSV_Injection

问题是我在数据库中有一个“描述”字段,其中包含 URL。 如果我检查字符是否存在并转义字符,它也会破坏 URL。

有没有办法通过正则表达式来解决这个问题?

示例:

Description = "This is a big description......https://url.com......=10+20+cmd|' /C calc'!A0....";

预期行为:

  • url 不应该被转义。
  • excel 命令应该被转义。

    使用的技术:NodeJS、Sequelize、MySQL
  • 如您引用的页面所述(强调我的):

    To remediate it, ensure that no cells begin with any of the following characters:

    换句话说,您不必删除这些字符中的 所有 ,仅当它们位于值的开头时。对于真实世界的数据,这种情况不应该经常发生。