06 January 2016

Melumpuhkan SQL Injection pada Adress bar dengan .htaccess

File .htaccess adalah file konfigurasi yang disediakan oleh web server Apache, yang biasanya digunakan untuk mengubah pengaturan default dari Apache. Kita ketahui bahwa sebagian besar web hosting di internet menggunakan Apache sebagai servernya sehingga bagi para pengelola web / webmaster sedikit banyak harus belajar tentang .htaccess agar kita bisa mengubah pengaturan default dari server. File.htaccess merupakan file teks ASCII sederhana yang biasanya diletakkan dalam root direktori. File ini diharuskan dalam format ASCII dan bukan binary dan untuk file permission (atribut file) pada server hostingharus di set 644 (rw-r-r).

Hal tersebut dimaksudkan agar server dapat mengakses file .htaccess, tapi mencegah user untuk mengakses file .htaccess daribrowser mereka. File .htaccess yang diletakkan dalamroot direktori dapat digunakan untuk mengubah konfigurasi dari subdirektori-subdirektori yang ada didalamnya, sehingga dalam satu website biasanya kita cukup untuk mempunyai 1 file .htaccess saja yang diletakkan dalam root direktori.

Kode perintah dalam file .htaccess harus ditempatkan dalam satu baris, jadi apabila kita membuat file .htaccess dengan menggunakan text editor seperti notepad maka kita harus mendisable fungsi word wrap (memotong baris) terlebih dahulu.

Perhatikan konfigurasi file .htaccess

RewriteEngine on
RewriteRule ^beranda\.html$ home.php [L]
RewriteRule ^view_data-cat-(.*)-product-(.*)\.html$ dataku.php?cat=$1&product=$2 [L]
Options All –Indexes


Kemudian perhatikan juga file-file yang terdapat pada direktori bloger :


Berikutnya perhatikan tampilan web di browser :



Setelah itu, kita hubungkan ketiga hal di atas tersebut. Kita akan mulai dari konfigurasi file .htaccess :

RewriteRule ^beranda\.html$ home.php [L]
Maksudnya ditulis atau dicetak pada virtual file yaitu beranda.html, sedangkan file realnya yaitu home.php tanpa melibatkan parameter.

RewriteRule ^view_data-cat-(.*)-product-(.*)\.html$ dataku.php?cat=$1&product=$2 [L]
Maksudnya ditulis atau dicetak pada virtual file yaitu view_data-cat-kategori-product-produk.html, sedangkan file realnya yaitu dataku.php tanpa melibatkan parameter.

Rumus membuat konfigurasi url pada .htaccess :
Tanpa parameter
RewriteRule ^virtual file\.html$ real file [L]

Dengan parameter
RewriteRule ^virtual file-parameter-(.*)\.html$ real file?parameter=$1 [L]
Keterangan :
Jumlah parameter di sesuaikan dengan parameter yang di tetapkan, misalnya parameter=$1 berarti itu merupakan parameter.

Isi dari file-file realnya seperti berikut ini :

Index.php
<?php
header("location:beranda.html");
?>

home.php
<h1 align=center>SELAMAT DATANG DI BERANDA KAMI</h1><hr>
<a href="view_data-cat-komputer-product-laptop.html">Lihat Produk Kami</a>

dataku.html
<a href="beranda.html">Kembali ke Beranda</a><hr>
Kategori : <?php echo strtoupper($_GET['cat'])." dan Product : ".strtoupper($_GET['product']); ?>

Kesimpulan :

Saat link ditetapkan maka url nya di tujukan ke file virtual . Contoh : 
beranda.html  ditujukan ke  home.php

view_data-cat-komputer-product-laptop.html ditujukan ke  dataku.php

Semoga bermanfaat.

No comments:

Post a Comment