SQL Injection Risk Assessment dalam Java Frameworks
SQL injection ialah kelemahan keselamatan aplikasi web biasa yang membolehkan penyerang memanipulasi pertanyaan pangkalan data untuk mencuri data sensitif, mengubah suai data atau melakukan operasi berniat jahat. Dalam rangka kerja Java, suntikan SQL biasanya berlaku apabila pertanyaan berparameter atau apabila membenamkan pertanyaan SQL secara langsung dalam rentetan tanpa menggunakan pengesahan dan sanitasi input yang betul.
Faktor risiko biasa
Kes Praktikal
Katakan kita mempunyai aplikasi Java mudah yang membolehkan pengguna mencari data dalam pangkalan data. Coretan kod berikut menunjukkan cara untuk melaksanakan fungsi carian yang cacat yang tertakluk kepada kerentanan suntikan SQL:
// Example: Vulnerable search function public List<User> searchUsers(String searchTerm) { String query = "SELECT * FROM users WHERE username = '" + searchTerm + "'"; return jdbcTemplate.query(query, new UserRowMapper()); }
Coretan kod ini membenamkan istilah carian yang dimasukkan pengguna terus ke dalam rentetan pertanyaan SQL. Jika penyerang menyediakan istilah carian yang mengandungi kod hasad, seperti:
searchTerm = "admin' OR 1=1 --";
ia akan memintas semakan nama pengguna dan mengembalikan semua rekod pengguna, termasuk rekod untuk pengguna pentadbir.
Pembetulan
Tindakan berikut boleh dilaksanakan dalam kod anda untuk mengurangkan risiko suntikan SQL:
Atas ialah kandungan terperinci Penilaian risiko suntikan SQL dalam rangka kerja java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!