Structured Query Language ('SQL') adalah bahasa tekstual yang digunakan untuk berinteraksi dengan database relasional. Ada banyak jenis SQL, dialek paling yang umum digunakan saat ini adalah longgar didasarkan sekitar SQL-92, yang paling baru ANSI standar. Unit khas pelaksanaan SQL adalah 'query', yang merupakan kumpulan pernyataan yang biasanya kembali 'menetapkan hasil' single.
pernyataan SQL dapat memodifikasi struktur database (menggunakan Data Definition Language laporan, atau 'DDL') dan memanipulasi isi database (menggunakan Data Manipulation Language laporan, atau 'DML'). Dalam tulisan ini, kita akan secara khusus membahas Transact-SQL, dialek dari SQL yang digunakan oleh Microsoft SQL Server.
SQL Injection terjadi ketika seorang penyerang dapat memasukkan serangkaian pernyataan SQL ke dalam 'query' dengan memanipulasi input data ke dalam aplikasi.
Kesalahpahaman lain yang populer adalah bahwa serangan injeksi SQL diuraikan di dalam makalah sebelumnya tidak bekerja dalam aplikasi 'tiga-tingkat', yaitu, aplikasi yang menggunakan ASP sebagai lapisan presentasi, COM objek sebagai lapisan aplikasi, dan SQL Server sebagai database lapisan. Ini tidak benar, dalam ketiadaan validasi input, lapisan aplikasi rentan terhadap injeksi SQL di tepatnya dengan cara yang sama, dan dalam konfigurasi default pesan kesalahan akan merambat ke browser.
Bahkan jika aplikasi tier 'menangani' pesan error, masih relatif mudah bagi penyerang untuk mengekstrak informasi dari database (lihat 'Menggunakan waktu tunda sebagai saluran komunikasi' di bawah). Perlindungan terbaik adalah untuk menghilangkan masalah di sumber, dengan validasi input
Tidak ada komentar:
Posting Komentar