首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JDBI @bind和bind方法是否没有SQL注入?

JDBI @bind和bind方法是否没有SQL注入?
EN

Stack Overflow用户
提问于 2017-01-23 16:45:01
回答 1查看 1.6K关注 0票数 3

我已经用一些SQL注入尝试测试了@bind注释,并且似乎输入被净化了。对于bind方法,我不确定它是否也是真的。

有人能用一些参考来证实我的猜测是否正确吗?我从文件里找不到任何东西。谢谢。

下面是使用bind注释的示例。

代码语言:javascript
复制
@SqlQuery("SELECT count(*)\n" +
        "FROM member_preference_value WHERE member_id = :memberId and preference_id=:preferenceId")
int hasUserSetPreference(@Bind("preferenceId") Integer preferenceId,@Bind("memberId") String memberId) throws Exception;

下面是一个使用bind方法的示例。

代码语言:javascript
复制
Update update = handle.createStatement(sqlQuery)
                        .bind("bookmark_id", savedSearch.getBookmarkId())
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-23 17:41:58

这两个示例都在内部使用JDBI参数绑定机制,它最终归结为标准的JDBC PreparedStatement setXxx()系列方法。您可以通过将JDBI源代码从绑定方法跟踪到StringArgument或类似的类来确认这一点,在这些类中,每种类型都实现了similar绑定。因此,使用JDBI bind并不比使用普通JDBC PreparedStatementbind方法更危险。

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

https://stackoverflow.com/questions/41811383

复制
相关文章

相似问题

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