我正在Java Spring Boot代码中生成一个CSV文件。一些数据来自用户,所以我需要从CSV注入中检查CSV的安全性。
我发现了一个逃脱特殊字符的库
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-text</artifactId>
<version>1.6</version>
</dependency>
StringEscapeUtils.escapeCsv(data);
我不确定它是否也解决了CSV注入问题。使用安全吗?
不,不是。StringEscapeUtils.escapeCsv
只更改引号和换行符。你可以在这里查看最新版本的代码
要断言CSV注入的问题,您应该:
[…]确保没有单元格以以下任何字符开头:
等于(=(
加(+(
负(-(
在(@(
选项卡(0x09(
回车(0x0D(
如您在此OWASP条目中所见:https://owasp.org/www-community/attacks/CSV_Injection