Rumah > pangkalan data > tutorial mysql > Bagaimanakah PreparedStatements Boleh Mencegah Suntikan SQL dalam Aplikasi Java?

Bagaimanakah PreparedStatements Boleh Mencegah Suntikan SQL dalam Aplikasi Java?

Patricia Arquette
Lepaskan: 2025-01-06 08:24:39
asal
644 orang telah melayarinya

How Can PreparedStatements Prevent SQL Injection in Java Applications?

Mengurangkan Kerentanan Suntikan SQL dalam Aplikasi Java

Untuk melindungi daripada serangan suntikan SQL, yang boleh mengeksploitasi kelemahan dalam pertanyaan pangkalan data, adalah penting untuk menggunakan teknik sanitasi yang betul. Pertimbangkan coretan kod Java berikut:

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

Kod ini terdedah kepada serangan suntikan SQL kerana input pengguna (nama, alamat, e-mel) disatukan terus ke dalam pernyataan SQL tanpa pengesahan atau pembersihan. Pelakon yang berniat jahat boleh mengeksploitasi ini dengan menyuntik kod SQL sewenang-wenangnya, seperti:

DROP TABLE customer;
Salin selepas log masuk

Untuk mengelakkan ini, adalah penting untuk menggunakan PreparedStatement dan bukannya gabungan rentetan SQL langsung. PreparedStatement menyediakan mekanisme selamat untuk melaksanakan pertanyaan berparameter. Berikut ialah contoh:

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();
Salin selepas log masuk

Kod yang disemak ini menggunakan kaedah setString untuk mengikat input pengguna kepada parameter SQL yang sepadan (diwakili oleh tanda soal dalam rentetan sisipan). Dengan memisahkan pertanyaan SQL daripada input pengguna, ia menjadi kebal terhadap serangan suntikan SQL. Kod hasad yang disuntik oleh penggodam akan dianggap sebagai rentetan literal dalam pernyataan SQL, dengan berkesan menghalang sebarang tindakan berbahaya.

Atas ialah kandungan terperinci Bagaimanakah PreparedStatements Boleh Mencegah Suntikan SQL dalam Aplikasi Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan