Langsung ke konten utama

Praktek Teknisi

Kali ini peserta kursus komputer melakukan study langsung dengan melakukan perakitan komputer dan menganalisa beberapa gejala yang sering terjadi ketika komputer dalam keadaan hank, ataupun blue screen. ada beberapa penyebab yang sering terjadi ketika komputer hank ataupun blue screen yang disebabkan diantaranya :    1. Sistem Operasi yang terlalu tinggi sedangkan spek komputer tidak mendukung, baiasanya yang sering dilakukan penginstallan windows 8 / windows 10 pro  2. Aplikasi / Software yang di gunakan terlalu tinggi dan membuka aplikasi berbarengan sehingga membuat source komputer menjadi berat dan proses pembacaan data pada RAM diluar dari batas kemampuan      3. Tekhnologi komputer sudah tidak lagi dapat digunakan atau tidak mendukung    4. Hardisk yang mulai lemah sehingga pembacaan pencarian source melemah      5. Ram yang kotor sehingga memperbesar kegagalan dalam mencari source terhambat. ...

Mencegah sql injection



BAB17
Mencegah SQL Injection


        Tidak afdol rasanya apabila buku ini tidak saya lengkapi dengan cara bagaimana mengamankan sebuah situs web dari aksi SQL Injection ini. Berikut ini beberapa trik yang perlu anda ketahui untuk mencegah aksi SQL Injection pada situs web Anda . jika pun tidak bisa mengamankan situs web sepenuhnya. Setidaknya akan memperlambat seseorang untuk melakukan aksi tersebut.
            Dari berbagai kasus SQL Injection yang telah dijelaskan dalam buku ini, dapat kita tarik kesimpulan, SQL Injection dapat tejadi karena tidak adanya penanganan terhadap karakter-karakter tanda petik satu dan juga karakter double minus yang menyebabkan suatu aplikasi dapat disisipi dengan perintah SQL. Sehingga seseorang bisa menyisipkanperintah SQL ke dalam suatu parameter maupun suatu form.
            Dari penjelasan di atas, kita dapat mengambil tindakan pencegahan supaya situs web kita tidakmenjadi korban serangan SQL Intection.
1.      Batasi panjang input box (jika memungkinkan), dengan cara membatasinya dikode program. Sehingga orang yang tidak berhak akan bingung sejenak melihat input box-nya tidak bisa di-inject dengan perintah yang panjang

2.      Administrator web haruslah tegas menolak user yang menginput karakter selain abjad dan angka. Karakter khusus dilarang masuk. Terapkan hal ini, baik input user, parameter URL, dan nilai-nilai dari cookies.

3.      Untuk nilai numeric,konversilah menjdi integer, sebelum di parsing menjadi statement SQL.  Atau gunakan ISNUMERIC untuk memastikan data tersebut interger.

4.      Filter input yang dimasukkan oleh user, terutama penggunaan tanda kutip tunggal (Input Validation), dan karakter khusus lainnya.

5.      Jika memungkinkan ,buatlah  daftar karakter yang boleh digunakan (whitelist).

6.      Batasi karakter  yang boleh diinput oleh pengunjung situs web Anda

7.      Matikan atau sembunyikan pesan-pesan error yang keluar dari SQL Server yang berjalan.

8.      Matikan fasiltas-fasilitas standar, seperti Stored procedures,Extended Stored Procedures jika memungkinkan.

9.      Ubah “Startup and run SQL Server” menggunakan low privilege user.

10.   Mengganti Error message (Pesan Error) karena hal ini sering kali digunakan oleh orang yang tidak berhak untuk menelusuri informasi jalur penyimpanan  database.

11.   Batasi Permisi hanya pada user yang terotorasi saja. Sang user tentu saja harus yakin bahwa data yang dia terima sudah akurat dan tidak ceroboh memodifikasinya.

12.  Kalau bisa, hilangkan show error mysql pada konfigurasi PHP.

13.  Jangan percaya bahwa ada 100% system kita aman, selalu lakukan update secara berkala.

14.  Bagi Anda yang menggunakan CMS, sangat disarankan untuk sering-sering meng-update CMS.

15.  Sering-seringlah untuk memeriksa apakah terdapat bug pada situs web yang Anda kelola. Cara yang paling mudah adalah menggunakan tool SQL Injection yang telah dibahas pada bab sebelumnya. Karena Anda bisa menemukan sendiri kelemahan pada situs web Anda, sebelumnya ditemukan oleh orang lain Supaya dari poin-poin diatas tidak terasa hanya teori,berikut saya berikan beberapa penjelasan detail untuk mencegah serangan SQL injection.

K O N F I G U R A S I

Dalam PHP Anda dapat melakukan hal ini menggunakan perintah using error_reporting(0); pada setiap kode atau dalam file konfigurasi php.ini.

Berikut beberapa konfigurasi PHP lainnya yang bisa anda terapkan apabila Anda merasa tidak memerlukan konfigurasi tersebut.

·         Register_globals (Atur menjadi off)
·         Allow_url_fopen (Atur menjadi off)
·         Magic_quotes_gpc (Atur menjadi off)
·         Magic_quotes_runtime(Atur menjadi off)
·         Safe_mode and open_basedir(Secara default dalam kondisi disanled, namun dapat diaktifkan ‘enable’ lalu melakukan konfigurasi yang sesuai dengan keamanan yang Anda perlukan. Namun Anda perlu berhati hati mengonfirgurasi fungsi ini.)

Anda juga dapat menggunakan beberapa fungsi pada PHP untuk memblok fungsi validasi input.

·         Is_<type>(input) Periksa jenis input berdasarkan type-nya apakah string atau numerik. Contohnya,is_numeric().
·         Strlen(input) Periksa panjang karakter input.
·         Preg-match(regex, matchstring) Cocokan parameter umum dengan matchstring menggunakan parameter regex.
Contoh penggunaan preg_matc untuk memvalidasi parameter adalah:
Susername = $_POST[‘username’];                                                                                                        if {!preg_match(“/^[a-zA-Z] {8,12} $/D”,$username) {// handle failed validation}

            S C R I P T      A S P     M E N C E G A  H     S Q L  I N J E C T I O N
            Berikut ini syantax bagi Anda yang mengunakan ASP untuk mencegah SQL injection dengan memeriksa setiap karakter inputan yang masuk kedalam database malalui statement SQL. Misalnya pada kasus berikut kita harus mencegah karakter ‘(single quote) untuk diproses kedalam databases atau kita bisa mengganti karakter ‘(single quote) yang masuk dengan” (double single quote). Adapun contoh script login_process.asp yang sudah dimodifikasi agar  mencegah SQL injection adalah sebagai beikut.

<% option explicit >%
<%
     Dim connstring,conn,recset
     Connstrig = “provider=SQLOLEDB.1; Password=rahasia; Persist
Security Info=True; User ID=Sa; Intital Catalog= sqlinject; Data
Source=localhost”
    Set conn = server.createobject( “adodb.connection”)
    Set recset = server.createobject( “adodb.recordset”)
     Conn.open connstring
     Recet.open “select * from tbUser where username = ‘ “ &
Replace (request.from(“username”), ” ‘ “ , ” ‘ ‘ “) & “ ‘ and password =
‘ “ & replace(request.from(“password”) , “ ‘ “ ,” ‘ ‘ “ & “ ‘ “ ,conn,3 , 2
     If not recset.eof then
        Response.write recset.recordcount
        Session (“username”) = reques.from (“username”)
        Response.redirect “secured_page.asp”
Else
      Responseredirect “login.asp”
End if
%>
Dari kode diperhatikan pada inputan username dan password,terdapat sedikit modifikasi dengan mengganti dari request.from(“username)
Replace(request.from(“username”) , “ ‘ “ , “ ‘ ‘ “),demikian juga untuk yang bagian password.


K A R A K T  E R E N K O D E                   
Sebagai tambahan, PHP juga menyediakan fungsi mysql_real_escape(), yang berfungsi untuk megubah tanda kutip single quote (‘) menjadi backslash (\) secara otomatis.
Jika Anda perhatikan dalam bab terdahulu terlihat bahwa pemakaian karakter enkode adalah satu usaha untuk meingkatkan keamanan situs web dari serngan SQL Intection ,Anda tetap dapat menggunakan hal tersebut. Selain itu, Anda juga bisa menggunakan beberapa bentuk enkode lainnya. Misalnya, untuk membuat enkode dari karakter kutip tunggal (single quote), Anda bisa mencoba beberapa alternative berikut.

Representasi
Jenis Enkode
%27
%2527
%317
%u0027
%u02b9
%ca%b9
&apos;
&#39;
&#x27;
%26apos;
URL enconding
Double URL enconding
Nested double URL enconding
Unicode representation
Unicode representation
Unicode representation
HTML entity
Decimal HTML entity
Hexadecimal HTML entity
Mixed URL/HTML enconding
                     
Namun , Anda perlu berhati-hati dalam mengubah pemakaian kode setting karena terkadang karakter-karakter tertentu juga diperlukan untuk mengeksekusi perintah SQL yang Anda gunakan.





By: Efvy Zam
Penerbit : PT Elex Media Komputindo
Karya : KOMPAS GRAMEDIA
Penulis : RIZKI MELAWATI
Judul buku :SQL INJECTION

Komentar

Postingan populer dari blog ini

Lembaga Kursus Di Kota Metro "LKP Metro Techno Solution"

  Kota Metro Kota Pendidikan salah satu kota di Provinsi Lampung yang memiliki fasilitas yang memadai, berbagai prestasi dibidang pendidikan, kesehatan, dan pelayanan perizinan. Kota Metro juga dikenal dengan kota pendidikan.      Terbukti dengan adanya LKP ( Lembaga Kursus dan Pelatihan ) yang didirikan oleh Bapak Adi Jaya Saputra, S. Kom, M. T. I  pada tanggal 28 Juli 2010 dan disahkan dengan pemikiran bahwa pendidikan di Kota Metro, khususnya di bidang komputer berbasis Open Source masih sangat minim sekali, padahal penggunanya masih bebas /free yang siapa saja bisa mengembangkan dan menggunakan tanpa harus membayar Software ( perangkat lunak ) sebagai alat pendukung dalam pengoperasian komputer. Inisiatif pendirian lembaga pendidikan ini juga merasa perlu untuk membentuk suatu wadah yang dapat membangun kemandirian, keahlian, kecerdasan dan aktifitas pendidikan serta terutama kemajuan dalam bidang pendidikan komputer berbasis Open Source. ...

Advanced SQL Injection

Saya rasa sampai sejauh ini, perjalanan anda untuk memahami SQL Injection terus bertambah. Saya harap sesampainya anda pada bab ini, sudah bisa memahami dan menggunakan SQL Injection. Dalam bab ini, kita akan mengulas SQL Injection. Jika dari teknik SQL Injection sebelumnya, kita berfokus untuk menemukan username dan password sebuah situs web. Lain halnya dengan Advanced SQL Injection, pada Advanced SQL Injection ini, yang kita lakukan tidak hanya mengakses database. Pada teknik ini, kita juga bisa membaca atau melihat file yang ada pada komputer target, bahkan lebih dari itukita juga bisa memasukkan file ke dalamnya. Dalam bab ini,,   kita akan menggunakan perintah LOAD_FILE dan INTO OUTFILE. ·          LOAD FILE berguna untuk membuka isi file ·          INTO OUTFILE berfungsi untuk menulis isi file Perintah tersebut kita masukkan pada angka error yang ditemukan sewaktu anda melakukan SQL Injection da...

Linux dan Distribusi Linux

Kernel adalah inti dari sebuah sistem operasi. Contoh dari tugas kernel adalah untuk memerintah head harddisk agar bergerak ke posisi tertentu dan menuliskan datanya di situ. Kernel juga bertugas menangani agar data di suatu area memori tidak tertimpa oleh data lain sehingga mengacaukan semuanya. Intinya, tugas kernel hampir tidak terlihatan oleh pengguna tapi memegang perana utama dalam menjalankan komputer. Windows explorer yang menampilkan file-file yang terdapat pada harddisk anda bukanlah kernel. Windows explorer yang selalu tersedia ketika anda menginstall sistem  operasi windows hanyalah aplikasi pendukung kernel. Windows explorer akan menanyakan kepada kernel : ”Hei kernel, file apa saja yang ada di harddisk ini?”. Kernel akan menjawab, ”sebentar, saya perintahkan head harddisk untuk bergeser dan membaca datanya untuk anda”. Setelah kernel mendapatkan datanya, windows explorer akan menampilkan dalam bentuk yang cantik dan enak untuk dilihat Distribusi linux adalah sebuah pa...