首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用preparedstatment修复SQL注入?

问如何使用preparedstatment修复SQL注入?
EN

Stack Overflow用户
提问于 2019-04-04 18:38:06
回答 1查看 159关注 0票数 0

我有一个类被veracode扫描标记为SQL注入,即使我使用的是PreparedStatment。我不能确定问题出在哪里,或者这是否可能是扫描的误报。请参考下面的代码(QueryBuffer是一个使用StringBuffer的自定义类):

代码语言:javascript
复制
List<ReferralService> list = new ArrayList<ReferralService>();
QueryBuffer sql = new QueryBuffer();
sql.addSql("SELECT rs.id FROM referral_service rs ");
sql.addSql("WHERE ");
sql.addSql("rs.closed = ? AND ");
sql.addSql("rs.workflow_id = ? ");
sql.addSql("ORDER BY submitted_on ASC limit 200");

PreparedStatement prepStmt = conn.prepareStatement(sql.toString());
prepStmt.setInt(1, 0);
prepStmt.setInt(2, liTeamID);
ResultSet rs = prepStmt.executeQuery();
EN

回答 1

Stack Overflow用户

发布于 2019-04-04 18:56:27

看起来veracode对字符串连接不满意。

它更像是一种SQL注入,将来当(另一个)开发人员扩展代码并向字符串中添加不好的东西(如变量)时,可能会发生这种情况。

所以请避免使用所有这些addSql字符串。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55513830

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档