gpt4 book ai didi

java - 如何使用 SQL 查询转义用户提供的参数?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:36:22 26 4
gpt4 key购买 nike

尝试开始使用 JDBC(使用 Jetty + MySQL)。我不确定如何在 SQL 语句中转义用户提供的参数。示例:

String username = getDangerousValueFromUser();
Statement stmt = conn.createStatement();
stmt.execute("some statement where username = '" + username + "'"));

我们如何在使用语句之前转义“用户名”?

最佳答案

使用Prepared statement .

例如:

con.prepareStatement("update Orders set pname = ? where Prod_Id = ?");
pstmt.setInt(2, 100);
pstmt.setString(1, "Bob");
pstmt.executeUpdate();

它将防止原始 SQL 注入(inject)

如果你想转义 sql 字符串然后检查 StringEscapeUtils.escapeSql() .请注意,此方法是 deprecated in Commons Lang 3 .

另见

关于java - 如何使用 SQL 查询转义用户提供的参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4954002/

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