我必须向我的 java 程序添加一条语句来更新数据库表:
String insert =
"INSERT INTO customer(name,address,email) VALUES('" + name + "','" + addre + "','" + email + "');";
我听说这可以通过 SQL 注入来利用,例如:
DROP TABLE customer;
我的程序有一个 Java GUI,所有名称、地址和电子邮件值均从 Jtextfields 检索。我想知道黑如何将以下代码(DROP TABLE customer;)添加到我的插入语句中以及如何防止这种情况。
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
例如:
会将此值插入到插入中:
INSERT INTO customer(name,address,email) VALUES(''); DROP TABLE customer; --"','"+addre+"','"+email+"');使用准备好的语句和 SQL 参数(来自 Matt Fellows 的“窃取”示例):
还要解析此类变量的值,并确保它们不包含任何不允许的字符(例如名称中的“;”)。