Cara Mencegah Serangan Sql Injection


Injeksi SQL telah menjadi pilihan terkenal bagi hacker, dipakai dalam serangan terhadap Sony Pictures, PBS, Microsoft, Yahoo, LinkedIn, dan CIA.

SQL, atau Structured Query Language, ialah bahasa perintah dan kontrol untuk basis data relasional menyerupai Microsoft SQL Server, Oracle dan MySQL. Dalam pengembangan web modern, database ini sering dipakai di bab belakang aplikasi web dan sistem pengelolaan konten - yang berarti bahwa konten dan sikap banyak situs web dibangun di atas data dalam server basis data.

Sebuah serangan yang berhasil pada database akan menawarkan aneka macam kemampuan kanal  sebuah situs web atau aplikasi web kepada  hacker, mulai dari memodifikasi konten situs web ("defacing"), atau untuk mengambil info sensitif menyerupai akun kredensial atau data bisnis internal.

Sebuah “kabar buruk” bagi pemilik situs web atau aplikasi web-base.

Baca Juga

Cara Mencegah Serangan SQL Injection
Kabar baiknya ialah bahwa sebetulnya ada banyak cara yang bisa dilakukan pemilik situs web untuk mencegah injeksi SQL. Meskipun tidak ada jaminan 100 persen dalam keamanan jaringan, paling tidak kendala berat sanggup ditempatkan di jalur upaya injeksi SQL.

1. Mempekerjakan sanitasi data yang komprehensif. Situs web harus memfilter semua masukan pengguna. Idealnya, data pengguna harus disaring untuk konteks. Misalnya, alamat email harus difilter semoga hanya mengizinkan abjad yang diperbolehkan dalam alamat e-mail, nomor telepon harus difilter semoga hanya mengizinkan abjad yang diperbolehkan dalam nomor telepon, dan seterusnya.

2. Gunakan firewall aplikasi web. Contoh yang terkenal ialah modul modSecurity open source yang tersedia untuk server web Apache, Microsoft IIS, dan nginx. ModSecurity menyediakan seperangkat peraturan yang canggih dan selalu berkembang untuk menyaring seruan web yang berpotensi berbahaya. Pertahanan injeksi SQL-nya sanggup menangkap sebagian besar upaya menyelinap SQL melalui saluran web.

3. Batasi hak istimewa database berdasarkan konteks. Buat beberapa akun pengguna basis data dengan tingkat hak istimewa minimum untuk lingkungan penggunaannya. Misalnya, arahan di balik halaman login harus query database memakai account terbatas hanya untuk tabel kredensial yang relevan. Dengan cara ini, pelanggaran melalui saluran ini tidak sanggup dimanfaatkan untuk kompromi keseluruhan database.

4. Hindari membangun query SQL dengan input pengguna. Bahkan rutinitas sanitasi data bisa saja cacat. Idealnya, dengan memakai variabel SQL yang mengikat dengan pernyataan siap atau mekanisme yang tersimpan jauh lebih kondusif daripada menciptakan kueri penuh.

5. Hilangkan kemampuan database yang tidak perlu, terutama yang meningkatkan hak istimewa database dan perintah yang menelurkan “shell”.

6. Terapkan secara teratur patch perangkat lunak. Karena kerentanan injeksi SQL secara teratur diidentifikasi dalam perangkat lunak komersial, penting untuk selalu mengikuti perkembangan patch.

7. Tekan pesan kesalahan. Pesan ini merupakan alat pengintai penting bagi penyerang, jadi jagalah semoga tetap lokal bila memungkinkan. Jika pesan eksternal diperlukan, jaga semoga tetap generik.

8. Terus memantau pernyataan SQL dari aplikasi yang terhubung dengan database. Ini akan membantu mengidentifikasi pernyataan SQL jahat dan kerentanan. Alat pemantau yang memanfaatkan pembelajaran mesin dan / atau analisis sikap sanggup sangat berguna.


Salah satu dari pertahanan ini secara signifikan mengurangi kemungkinan serangan injeksi SQL yang berhasil. Menerapkan semuanya akan menawarkan tingkat tinggi pencegahan injeksi SQL. Meskipun penggunaannya meluas, situs Anda tidak harus menjadi korban injeksi SQL berikutnya.

Artikel Terkait

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel