在写sql使用了<foreach>标签,报错sql injection violation, dbType mysql, , druid-version 1.2.11, syntax error: EOF
时间: 2024-03-20 19:40:17 浏览: 127
一个类似foreach的简单自定义标签
这个错误可能是由于你在<foreach>标签中使用了未经过滤的变量,导致 SQL 注入攻击。为了避免这个问题,你需要使用 Mybatis 提供的动态 SQL 功能,对传入的变量进行过滤。
你可以尝试在<foreach>标签中使用 SQL 的占位符,例如#{item},并在 Mybatis 的 XML 映射文件中使用<bind>标签对其进行过滤,例如:
```
<foreach collection="list" item="item" separator=",">
#{item.id}
</foreach>
<bind name="filteredId" value="${item.id}" />
```
其中,${item.id} 表示未经过滤的变量,<bind> 标签中的 value 属性则表示对其进行过滤后的值。
如果你仍然遇到问题,可以考虑更新 Druid 的版本或者使用其他的数据库连接池。
阅读全文