Rumah > pangkalan data > tutorial mysql > Bagaimanakah PreparedStatements Boleh Melindungi Aplikasi Java daripada Serangan Suntikan SQL?

Bagaimanakah PreparedStatements Boleh Melindungi Aplikasi Java daripada Serangan Suntikan SQL?

Patricia Arquette
Lepaskan: 2025-01-06 08:25:44
asal
965 orang telah melayarinya

How Can PreparedStatements Protect Java Applications from SQL Injection Attacks?

Pencegahan Suntikan SQL dalam Program Java

Mencegah serangan suntikan SQL adalah penting dalam program Java yang berinteraksi dengan pangkalan data. Serangan suntikan SQL berlaku apabila input yang tidak dipercayai dimasukkan ke dalam pertanyaan SQL, membenarkan penyerang melaksanakan kod hasad atau memanipulasi data.

Pertimbangkan kod Java berikut yang memasukkan data ke dalam jadual pangkalan data:

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

Kod ini terdedah kepada serangan suntikan SQL kerana nilainya diinterpolasi secara langsung ke dalam pertanyaan. Contohnya, penyerang boleh memasukkan rentetan berikut sebagai nama:

DROP TABLE customer;
Salin selepas log masuk

Ini akan menyebabkan keseluruhan jadual pelanggan dipadamkan.

Untuk mengelakkan serangan ini, gunakan PreparedStatement. Objek PreparedStatement menggunakan ruang letak untuk parameter pertanyaan, yang kemudiannya diisi kemudian. Pemisahan ini menghalang input yang tidak dipercayai daripada diinterpolasi terus ke dalam pertanyaan.

Kod berikut menunjukkan penggunaan 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();
Salin selepas log masuk

Kod ini dilindungi daripada suntikan SQL kerana nilai ditetapkan secara berasingan daripada pertanyaan. Penyerang tidak lagi boleh mengubah niat pertanyaan dengan memasukkan input berniat jahat.

Atas ialah kandungan terperinci Bagaimanakah PreparedStatements Boleh Melindungi Aplikasi Java daripada Serangan Suntikan SQL?. 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