gpt4 book ai didi

java - 使用JOOQ,我还需要什么来防止sql注入(inject)

转载 作者:行者123 更新时间:2023-12-02 12:02:02 29 4
gpt4 key购买 nike

这怎么是重复的,因为我在这里专门询问 JOOQ?

我在 JAVA 项目中使用 JOOQ 来处理所有 PostgreSQL 查询。我读到this文章介绍了 JOOQ 使用准备好的语句来执行所有查询。

  1. 是否可以安全地假设我在执行查询时不需要担心 SQL 注入(inject)或用户输入?

  2. 我不需要担心在将用户输入交给 JOOQ 之前对其进行转义吗?

  3. 顺便说一句,我的数据库在获取用户输入时还存在哪些其他漏洞(除了通过准备好的语句解决的漏洞),我应该小心?

最佳答案

1) 可以,只要您正确使用提供的 API。但仍然可以注入(inject)普通的 sql 查询,所以要小心。

All methods in the jOOQ API that allow for plain (unescaped, untreated) SQL contain a warning message in their relevant Javadoc

// This query will use bind values, internally.
create.fetch("SELECT * FROM BOOK WHERE ID = ? AND TITLE = ?", 5, "Animal Farm");
// This query will not use bind values, internally.
create.fetch("SELECT * FROM BOOK WHERE ID = 5 AND TITLE = 'Animal Farm'");

请参阅此处的 JOOQ 文档以获取更深入的解释:https://www.jooq.org/doc/3.9/manual/sql-building/bind-values/sql-injection/

2)不,见上文。

3)除此之外,请注意一般数据库安全问题,例如用户身份验证/角色以及以未加密格式存储敏感数据等

关于java - 使用JOOQ,我还需要什么来防止sql注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47183032/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com