gpt4 book ai didi

java - 防止Java程序中的SQL注入(inject)攻击

转载 作者:IT老高 更新时间:2023-10-29 00:12:58 27 4
gpt4 key购买 nike

我必须在我的 java 程序中添加一条语句来更新数据库表:

String insert =
"INSERT INTO customer(name,address,email) VALUES('" + name + "','" + addre + "','" + email + "');";

我听说这可以通过 SQL 注入(inject)来利用,例如:

DROP TABLE customer; 

我的程序有一个 Java GUI,所有名称、地址和电子邮件值都从 Jtextfields 中检索。我想知道黑客如何将以下代码 (DROP TABLE customer;) 添加到我的插入语句中,以及如何防止这种情况发生。

最佳答案

您需要使用 PreparedStatement .例如

String insert = "INSERT INTO customer(name,address,email) VALUES(?, ?, ?);";
PreparedStatement ps = connection.prepareStatement(insert);
ps.setString(1, name);
ps.setString(2, addre);
ps.setString(3, email);

ResultSet rs = ps.executeQuery();

这将防止注入(inject)攻击。

如果您插入的字符串来自某处的输入,那么黑客将其放入其中的方式 - 例如。网页上的输入字段,或应用程序或类似表单中的输入字段。

关于java - 防止Java程序中的SQL注入(inject)攻击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9516625/

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