PHP Hosting Indonesia – JaringanHosting.com :: Cara Melindungi Website PHP Anda dari SQL Injection

Sebagai developer web, saya sering membaca artikel tentang hacker, yang dimana hacker tersebut melakukan infiltrasi website melalui metode yang ditakuti yaitu ‘SQL Injection’ dan kemudian hacker tersebut benar-benar mengambil kendali, merubah, mendapatkan akses, atau merusak website yang telah berhasil diobobol olehnya. Sebagai sesama web developer, saya yakin Anda ingin tahu bagaimana untuk melindungi website anda dari SQL Injection. Jika pada artikel sebelumnya saya pernah membahas tentang Cara Menemukan SQL Injections Menggunakan HTTP Logs. Pada artikel ini, Anda akan mengetahui apa itu SQL Injection, apa yang dapat Anda lakukan untuk mencegah serangan SQL Injection, dan rekomendasi tambahan dari saya yang mudah untuk dilakukan untuk membuat website Anda lebih aman.

thief-web-197x395

Sebenarnya, Apa itu SQL Injections?

Pada dasarnya, SQL Injection adalah metode hacking yang digunakan terhadap situs web untuk mendapatkan akses ke data situs yang disimpan di dalam database SQL. SQL Injection digunakan untuk mendapatkan akses ke informasi database, untuk menghancurkan informasi database, atau untuk memanipulasi informasi database.

Contoh :

Misalkan Anda seorang profesional dengan bisnis Anda sendiri. Anda telah membuat database SQL dengan tabel yang berisi semua informasi klien Anda, yang Anda gunakan untuk mengirimkan pemberitahuan penting, penagihan, dll. Anda butuh satu tahun untuk mendapatkan 50.000 klien yang sangat penting.

Contohnya ini adalah SQL query Anda di PHP log-in script Anda :

Suatu hari, seorang hacker mengatakan bahwa dirinya telah berhasil masuk ke dalam databese anda. Ia menggunakan username Anda lalu Login
Si hacker tersebut kini telah berhasil masuk kemudian melihat setiap table di databese Anda. Sampai si hacker tersebut mengetahui nama table Anda kemudian melakukan :
Maka dengan begitu semua informasi di table Anda tersebut akan hilang. Karena si hacker tersebut baru saja men-drop table Anda. Lalu apa yang bisa kita lakukan untuk mencegah hal buruk ini terjadi? Berikut saya akan memberikan info kepada Anda untuk langkah apa saja yang perlu Anda lakukan sekligus rekomendasi dari saya.

Langkah 1 : Gunakan mysql_real_escape_string () 

Fungsi PHP ini pas untuk digunakan dalam query SQL dan melindungi Anda dari serangan. Query Anda  sekarang akan terlihat seperti ini:

Langkah ke 2 : Gunakan mysql_query ()  Menggunakan ‘mysql_query ()’ berarti Anda memiliki perlindungan tambahan terhadap SQL Injection. Tanpa ‘mysql_query ()’ dapat memungkinkan hacker untuk menggunakan beberapa perintah SQL dari ‘username’ field Anda, bukan hanya satu, ada juga kerentanan lain. ‘mysql_query ()’ hanya akan memberikan izin satu perintah pada satu waktu. Jadi, query Anda sekarang akan terlihat seperti ini:

Rekomendasi 1: Pusatkan Koneksi Databese Anda  Di dalam script Anda, Anda harus memusatkan koneksi databese Anda ke satu halaman. Pada setiap halaman yang yang dibutuhkan, cukup gunakan fungsi ‘include ()’ untuk memasukkan halaman yang informasi koneksi databasenya di SQL Anda. Hal ini akan memaksa Anda untuk membuat query dengan format yang sama pada setiap halaman yang Anda buat, dan mengurangi kemungkinan kesalahan yang menghasilkan sebuah bug. Jadi, katakanlah kita membuat sebuah file yang disebut ‘connections.php’ dan masukkan kode ini ke dalam file tersebut:

Rekomendasi 2: Clean Data pada Awal Page Banyak bahasa pemrograman memaksa Anda untuk mendeklarasikan variabel sebelum Anda dapat menggunakannya di sepanjang script. PHP tidak memaksa Anda untuk melakukan hal ini, namun, itu adalah kebiasaan yang baik untuk membersihkan variabel di awal halaman. Tentu seseorang akan  bertanya, “Jika saya membersihkan setiap variabel di seluruh halaman, mengapa saya harus membersihkan variabel di atas? Apakah aku tidak melakukan hal yang sama dengan rekomendasi Anda?”. Hal ini lebih mudah jika Anda membersihkan variabel di awal halaman untuk beberapa alasan yang berbeda, di luar format.

  • Mengurangi jumlah kode yang Anda tulis.
  • Setelah variabel bersih, Anda dapat menggunakannya secara bebas di seluruh halaman, tanpa takut ada sebuah bug.
  • Terasa lebih bersih dan lebih terorganisir, memungkinkan Anda untuk bekerja lebih mudah, dan menghindari kesalahan.

Jika kita membersihkan variabel di awal halaman, script kita akan terlihat seperti ini:

Mengurangi jumlah yang harus Anda ketikkan lebih lanjut. Lihatlah contoh berikut.

Rekomendasi 3: Periksa Lagi, Bahkan Setelah Anda melakukan Cleaning Data Anda dapat melakukan pemeriksaan tambahan untuk mencegah proses yang tidak penting berjalan pada server Anda. Hal ini dicapai dengan menambahkan script check seperti berikut ini :

Sekarang Anda telah berhasil melakukan pencegahan terhadap SQL Injections. Sekian mengenai Cara Melindungi Website PHP Anda dari SQL Injections. Semoga bermanfaat