Skip to content Skip to sidebar Skip to footer

Mengatasi Serangan Sql Injection Dan Html Injection Dengan Htmlentities Dan Md5

Sebelumnya Saya ingin menunjukan bahwa Saya sama sekali tidak jago dalam bidang ini, jadi bila ada kesalahan dalam penyampaian mohon untuk diluruskan.

Apa itu SQL Injection ?

Saya memahami SQL Injection sebagai sebuah metode yang dilakukan seorang hacker memakai perintah SQL atau string tertentu yang dapat mengakibatkan error atau kesalahan pada sistem yang memakai MySQL sebagai basis datanya. Dalam pola kasus konkret SQL injection juga sering dipakai untuk melaksanakan bypass sebuah form login website

Dalam beberapa kasus yang pernah Saya alami biasanya serangan yang biasa disebut dengan SQL Injection ini juga sering terjadi pada sebuah form login. Parameter yang di selipkan ke form login tentunya ialah parameter string yang dapat membuat form isian password seolah – olah jadi kosong. misal yang paling sederhana kita dapat menyelipkan parameter atau string menyerupai ‘+’ dengan string tersebut, maka form input yang harusnya diisi dengan password yang benar malah akan diabaikan dan dianggap benar alasannya ialah sudah disipkan parameter string tersebut.

Apa itu HMTL Injection
Saya memahaminya sebagai jenis serangan yang memakai metode injeksi dengan memasukan isyarat HTML kedalam sebuah form input, dengan HTML injection, seseorang dapat mengambil cookies


HTML injection is a type of injection issue that occurs when a user is able to control an input point and is able to inject arbitrary HTML code into a vulnerable web page. This vulnerability can have many consequences, like disclosure of a user's session cookies that could be used to impersonate the victim, or, more generally, it can allow the attacker to modify the page content seen by the victims.

Apa itu htmlentities ?
htmlentities() ialah sebuah fungsi untuk merubah tiruana tag HTML menjadi text biasa. Saya juga bahu-membahu menambahkan fungsi mysql_real_escape_string() di depan htmlentities. mysql_real_escape_string() ialah fungsi PHP yang dipakai untuk memdiberi backslash di beberapa isyarat untuk ditampilkan pada halaman, namun dikala menyimpan menuju sql, isyarat akan tetap normal tanpa ada backslash. htmlentities juga sering saya gunakan untuk memfilter data yang tersimpan pada variabel GET. Lihat artikel : Memfilter Perintah GET di PHP

Apa itu MD5 ?
Penjelasan wacana MD5 sudah Saya jelaskan pada artikel Teknik Menggunakan Enkripsi MD5 di PHP
Sebelumnya Saya ingin menunjukan bahwa Saya sama sekali tidak jago dalam bidang ini Mengatasi Serangan SQL Injection dan HTML Injection melaluiataubersamaini htmlentities dan MD5


Untuk mencegah terjadinya by pass login memakai sql injection ataupun html Injection maka kita dapat memakai htmlentities atau md5, atau juga dapat memakai perpaduan keduanya. Dalam pola kasus kali ini Saya ingin mencotohkannya pada Aplikasi PSB yang saya buat, dimana pada aplikasi tersebut sebelum siswa dapat masuk ke halman pendaftaran, ia harus terlebih lampau memasukan “KEY”. Key tersebut bahu-membahu ialah sebuah password yang disimpan dalam database MySQL. Password yang tersimpan ialah pssword yang telh di perlindungan dengan enkripsi MD5. Tapi bila susunan kodenya salah, maka enkrispi tersebut akan sangat percuma, alasannya ialah akan dapat di by pass dengan praktis oleh si penyerang. Silahkn download terlebih lampau source codenya pada halaman Aplikasi Penerimaan Siswa Baru (PSB) Gratis Versi 1.1

Mari kita lihat serpihan kodenya dalam file “key_proses.php” dalam aplikasi Penerimaan Siswa Baru

if(isset($_POST['lanjutkan'])){
$key = mysql_real_escape_string(htmlentities(md5($_POST['key'])));
$sql = mysql_query("SELECT * FROM kunci WHERE number_key='$key'")

Varibel di kirimkan memakai POST disimpan dulu dalam sebuah variabel begitu pula dengan perintah querynya disimpan kedalam sebuah variabel $sql. Jika seandinya Saya tidak memakai mysql_real_escape_string(htmlentities(md5, misal jadi menyerupai ini 

$key = ($_POST['key']);
maka balasannya form input key atau password yang Saya buat dengan susunan isyarat menyerupai itu, akan sangat praktis untuk di bypass oleh si penyerang.

Tapi seandainya kita spesialuntuk memakai MD5 saja dan tidak memakai fungsi mysql_real_escape_string(htmlentities mungkin dapat di katakan aplikasi kita sudah aman, karena Saya berpikir script sql injection yang di selipkan si penyerang tentunya akan dirubah kedalam bentuk enkripsi md5 bukan dalam string seutuhnya. Saya sudah mencobanya pada aplikasi yang Saya buat sendiri tanpa memakai tembahan fungsi mysql_real_escape_string(htmlentities, namun spesialuntuk MD5 saja ,  jadi nanti scriptnya akan terlihat menyerupai ini 

 $key =(md5 ($_POST['key']));
Tapi mungkin bila ingin lebih kondusif memang kita harus memakai perpaduan keduanya.

Jadi kesimpulannya, untuk mencegah terjadinya serangan sql injection atau html injection pada sebuah form login, maka kita cukup menyimpan variabel yang dikirim memakai POST kemudian menambahkan fungsi htmlentities atau md5 ke dalam variabel yang tersimpan. Untuk md5 tentunya password yang tersimpan harus dalam keadaan terenkripsi, bila password yang tersimpan bukan dalam bentuk md5 maka kita cukup memakai fungsi mysql_real_escape_string dan htmlentities saja. 

Baca juga : Memahami Penggunaan mysql escape string dan htmlentities

 

Post a Comment for "Mengatasi Serangan Sql Injection Dan Html Injection Dengan Htmlentities Dan Md5"