Apa maksud dari mysl injection

Kali ini kami akan membahas bagaimana cara mengatasi SQL injection login di php menggunakan beberapa metode script seperti escape_string, addslashes, atau encript password, sehingga dapat mencegah serangan yang ditujukan ke database server. SQL injection adalah salah satu jenis teknik penyerangan sistem keamanan komputer dengan cara memasukkan nilai input tertentu melalui form login sehingga dapat meng-akses database. SQL injection di php dapat berjalan dengan baik jika ditemukan celah keamanan pada sebuah halaman login web atau aplikasi yang tidak diproteksi dengan baik. Oleh karena itu, penting sekali untuk dipelajari bagaimana cara mencegah SQL injection pada form login di php, sehingga sistem aplikasi dan database menjadi lebih aman.

Sebelum membahas cara mencegah atau mengatasi SQL injection login di php lebih detail, kami jelaskan kembali terlebih dulu bagaimana cara kerja SQL injection dengan php. Secara umum sintak SQL yang digunakan pada proses pengembangan web atau aplikasi adalah sintak dalam kategori perintah DML [Data Manipulation Language] yaitu INSERT, SELECT, UPDATE, dan DELETE. Perintah SQL tersebut dikirim menggunakan method POST atau GET berikut dengan value nya. Jika value atau nilai tersebut tidak di enkripsi, maka ini adalah celah dari sebuah sistem keamanan, dan dengan mudah mendapatkan serangan dalam bentuk SQL injection.



sql injection di php

Oleh karena itu, agar dapat mengetahui cara mencegah atau mengatasi SQL injection login di php, maka sebaiknya kita pahami terlebih dulu bagaimana cara kerja SQL injection itu sendiri.

Begini Cara Kerja SQL Injection.

Seperti dijelasksan di atas bahwa sintak SQL yang digunakan pada proses pengembangan adalah sintak dalam kategori perintah DML yaitu INSERT, SELECT, UPDATE, dan DELETE. Sebagaimana contoh baris URL web di bawah ini.

//www.arya-satya.com/index.php?id=10

Maka perintah atau query SQL untuk menampilkan record berdasarkan baris URL web seperti di atas secara umum adalah sebagai berikut.

SELECT * FROM tb_berita WHERE id=10

Sehingga ketika diimplementasikan ke dalam pemrograman PHP akan menjadi baris kode seperti ini.

$query ="SELECT * FROM tb_berita WHERE id='$_GET[id]'";

Dan ketika query tersebut dijalankan, maka database server akan memberikan respon balik dalam bentuk hasil sesuai parameter yang dikirimkan. Akan tetapi jika kita memodifikasi parameter yang dikirim melalu URL dengan sebuah karakter khusus yaitu single quote [ ' ] seperti ini.

//www.arya-satya.com/index.php?id=10'

Maka query SQL sebagaimana URL tersebut tidak akan dapat dijalankan dan database server akan memberikan respon balik berupa pesan error seperti berikut.

#1064 - You have an error in your SQL syntax; check the manual that corresponds to yourMySQL server version for the right syntax to use near ''' at line 1

Kenapa terjadi error? karena pada sisi server, query SQL yang dijalankan mengandung karakter single quote [ ' ] seperti dibawah ini.

SELECT * FROM tb_berita WHERE id=10'

Dari penjelasan di atas, maka hal tersebut adalah sebuah celah keamanan situs dari sisi scripting dan akan dengan mudah di eksploitasi dengan metode SQL Injection.


Kemudian apa hubungannya penjelasan tersebut dengan tips cara mencegah atau mengatasi SQL injection login di php? Tentu saja saling berkaitan. Karena proses login juga melakukan query SQL dalam kategori data manipulation language, yaitu SELECT untuk mencocokan nilai yang disubmit dari form login dengan nilai di dalam database.


Tips Keamanan Sistem Dari Serangan SQL Injection PHP

Berikut tips cara mengatasi SQL injection login di php sehingga dapat mencegah serangan yang dilakukan oleh intruder yang biasanya melalui form login. Yaitu menggunakan script anti SQL injection yang telah tersedia di dalam sistem PHP dan beberapa teknik lainnya, seperti berikut ini.

  • Menggunakan fungsi mysqli_real_escape_string[]
  • Menggunakan fungsi addslashes[]
  • Menggunakan encript password.


1. Mencegah SQL injection login dengan fungsi mysqli_real_escape_string[].

Jika diperlukan, penggunaan fungsi tersebut dapat digabungkan dengan fungsi trim[]. Berikut adalah contoh baris kode script dengan fungsi mysqli_real_escape_string.

$username =mysqli_real_escape_string[$conn, $_POST['username']]; $password =mysqli_real_escape_string[$conn, $_POST['password']]; $query =mysqli_query[$conn, "SELECT * FROM tb_user WHERE username='$username' AND password='$password'"];

Peranan fungsi mysqli_real_escape_string dalam mengatasi SQL injection login di php adalah untuk mem-bypass spesial karakter dalam query SQL, sehingga ketika attacker menyertakan karakter seperti ' ! ^ ] " dan lain sebagainya, maka fungsi ini tidak akan membaca karakter tersebut.

2. Mencegah SQL injection login dengan fungsi addslashes[].

Jika diperlukan, penggunaan fungsi addslashes sebagai script anti SQL injection juga dapat digabungkan dengan fungsi trim[]. Berikut adalah contoh baris kode script dengan fungsi addslashes.

$username =addslashes[$conn, $_POST['username']]; $password =addslashes[$conn, $_POST['password']]; $query =mysqli_query[$conn, "SELECT * FROM tb_user WHERE username='$username' AND password='$password'"];

3. Mencegah SQL injection login dengan encript password.

Tips atau cara lain untuk mencegah serangan SQL injection pada form login php adalah dengan melakukan enkripsi password sebelum disubmit kedalam database. Jenis enkripsi yang umum digunakan adalah MD5, atau silahkan gunakan fungsi enscript lainnya.

Berikut adalah contoh baris kode script login dengan enkripsi md5.

$username =mysqli_real_escape_string[$conn, $_POST['username']]; $password =mysqli_real_escape_string[$conn, md5[$_POST['password']]]; $sql =mysqli_query[$conn, "SELECT * FROM tb_user WHERE username='$username' AND password='$password'"];

Sebagaimana contoh script php anti SQL injection di atas, penggunaan encript password md5 ternyata juga dapat digabungkan sekaligus dengan fungsi mysqli_real_escape_string.

Cara Mengatasi SQL Injection Login di PHP

Sekian penjelasan dari kami tentang sistem keamanan database yaitu cara mencegah atau mengatasi SQL injection login di php yang umumnya dilakukan melalui form login. Jika terjadi gagal atau error atau tidak berjalan berhasil, silahkan hubungi kami melalui email atau melalui form komentar dan obrolan. Semoga dapat membantu.

Baca juga :


Tags: cara mengatasi sql injection di php, mencegah serangan sql injection, script php anti sql injection, sql injection php, mengatasi sql injection login di php

Home » Apa Itu SQL Injection dan Cara Mengatasinya

2 min read

Dalam beberapa tahun belakangan ini kasus serangan yang mengarah pada keamanan website semakin meningkat. Ancaman terbesar peretasan website yang menduduki peringat pertama sampai saat ini adalah SQL Injection. Sudah lebih dari 20 tahun sejak serangan SQL Injection diungkapkan ke public sampai saat ini masih sering sekali ditemui. Nah lalu apa itu SQL Injection dan cara mengatasinya?

Apa Itu SQL Injection

Apa Itu SQL Injection dan Cara Mengatasinya

SQL Injection adalah salah satu teknik yang menyalahgunakan celah keamanan yang ada di SQL pada lapisan basis data suatu aplikasi. Celah ini terjadi karena input dari user tidak difilter secara benar dan dalam pembuatannya menggunakan form yang salah. Jadi sampai saat ini SQL Injection masih menjadi favorit hacker untuk melakukan serangan pada website. Apalagi sekarang ini hacking melalui jaringan internet sudah tidak semudah zaman dulu.

Contoh mudah teknik SQL Injection melalui form username harusnya username diisi dengan karakter saja, tetapi form tersebut bisa diisi dengan karakter lain, jadi hacker bisa menyisipkan karakter seperti [:;-,=’] sehingga hacker bisa memasukan query SQL Injection, akibatnya yang pasti website Anda sudah bisa ditembus oleh hacker tersebut.

Tujuan SQL Injection

Cara Kerja SQL Injection

SQL Injection yang dilakukan oleh hacker pasti memiliki tujuan, tidak mungkin hanya sebatas iseng saja. Berikut beberapa tujuan SQL Injection yang sering banyak ditemui:

Jika berhasil masuk kedalam sistem, hacker akan mudah melakukan bypass tanpa perlu menggunakan username dan password yang benar untuk bisa mendapatkan akses. Cukup dengan memasukan script SQL Injection pada form yang masih terbuka.

Hacker memungkinkan untuk mengambil semua informasi yang ada pada website terutama informasi yang bersifat sensitif seperti username dan password.

Baca juga : Apa Itu Spoofing dan Bahayanya

SQL Injection memungkinkan untuk hacker menghapus semua data yang tersimpan di database, jika sudah terjadi seperti ini dan tidak ada backup database maka akan sangat berbahaya. Jadi Anda perlu melakukan backup data secara berkala untuk tujuan keamanan data.

Selain menghapus data, hacker dengan mudah mengubah data yang tersimpan di database sehingga menyebabkan data tidak valid. Jadi Anda perlu memiliki backup data jika sewaktu-waktu data dirubah oleh orang yang tidak bertanggung jawab.

Pada beberapa database, Anda sebagai user bisa mengakses operating system menggunakan server database, kalau sudah seperti ini hacker bisa dengan mudah menyerang semua yang ada pada website Anda.

Cara Mengecegah SQL Injection

Proses SQL Injection

Untuk meminimalisir semua efek yang diakibatkan dari serangan SQL Injection, Anda bisa melakukan beberapa tindakan seperti berikut ini, yaitu:

1. Sesuaikan input box

Jika form input box tujuannya untuk menuliskan nama, maka berikan khusus untuk karakter saja, jika untuk mengisikan nomor telepon maka isilah dengan numbering saja sehingga tindakan SQL Injection bisa dihindarkan.

2. Batasi input box

Untuk lebih amannya dalam setiap box dibatasi jumlah karakternya, contoh saja untuk nama paling tidak diberikan 30 karakter atau disesuaikan sesuai dengan kebutuhan, sehingga jika ada percobaan SQL Injection yang masuk akan terkendala oleh jumlah  karakter yang tersedia.

3. Filter user

Melakukan filter kepada inputan setiap user, terutama yang menggunakan karakter kutip tunggal [Validation Input] karena ini menjadi salah satu trik yang dilakukan hacker untuk SQL Injection.

4. Mematikan error handling

Jika terjadi error, Anda perlu mematikan fitur notifikasi pesan error yang keluar dari SQL Server. Jika sampai ada, ini bisa menjadi celah bagi hacker untuk melakukan eksploitasi lebih dalam percobaan SQL Injection.

5. Nonaktifkan fitur standart SQL

Fitur-fitur standart yang ada di SQL seperti Stored Procedures dan Extend Stored Procedures lebih baik untuk dimatikan saja, karena rawan terkena SQL Injection.

6. Setting Privilege

Silahkan Anda rubah pada bagian ‘Stratup and run SQL Server’ dengan setting low privilege user pada menu SQL Server Security tab.

Nah demikian pemabahasan tentang apa itu SQL Injection dan cara mengatasinya. Kesimpulannya jangan sampai memberikan celah sedikitpun kepada hacker untuk melakukan SQL Injection, Anda sebagai pemilik website harus selalu berhati-hati dan waspada pada tindak kejahatan cyber seperti ini.

Untuk Anda yang membutuhkan pengamanan lebih pada website, kami memiliki rekomendasi untuk menggunakan layanan SSL Certificate, cukup dengan harga 150.000/tahun Anda sudah bisa memiliki SSL Murah dari brand Sectigo PositiveSSL. Tunggu apalagi segera pesan SSL untuk keamanan website Anda hanya di GudangSSL.id.

Terima kasih

Video yang berhubungan

Bài Viết Liên Quan

Bài mới nhất

Chủ Đề