article

Cara Menangani Serangan XSS Pada CodeIgniter

Cara Menangani Serangan XSS Pada CodeIgniter

Pernah mengalami website tiba-tiba mengeluarkan banyak sekali alert dan ternyata setelah diperiksa terdapat script javascript yang berjalan secara misterius? hati-hati itu tandanya website anda sudah terkena serangan XSS

Mencegah Serangan XSS

Lalu apa itu XSS ? dikutip dari id.wikipedia.org ,XSS merupakan kependekan yang digunakan untuk istilah cross site scripting.

XSS merupakan salah satu jenis serangan injeksi code (code injection attack). XSS dilakukan oleh penyerang dengan cara memasukkan kode HTML atau client script code lainnya ke suatu situs. Serangan ini akan seolah-olah datang dari situs tersebut. Akibat serangan ini antara lain penyerang dapat mem-bypass keamanan di sisi klien, mendapatkan informasi sensitif, atau menyimpan aplikasi berbahaya.

ads

Salah satu contoh dari serangan XSS ini adalah ketika user pada form input bukannya memasukkan data biasa, malah mengisikannya dengan kode script javascript misalkan alert, tentu hal ini apabila tidak dicegah maka akan mengganggu sistem kita, apabila alertnya hanya sekali sih mungkin tidak terlalu mengganggu, namun bagaimana jika alert yang ditampilkan diulang 1000 kali? Cukup mengganggu dan membuat geram bukan?

Agar lebih jelas lagi berikut saya tampilkan screenshot mengenai XSS attack ini

Seputar Keamanan Pada CodeIgniter

Maka hasil dari inputan diatas akan menjadi seperti berikut

Seputar Keamanan Pada CodeIgniter

Jadi berdasarkan contoh diatas maka ketika user memasukkan script javascript pada inputan maka otomatis pada panel admin juga keluar alert dan tentunya setiap panel admin di refresh, alert tadi akan tetap muncul.

Oleh karena itu, untuk mengatasi ini CodeIgniter sudah punya antisipasinya yaitu dengan mengubah baris $config['global_xss_filtering'] = FALSE;  Menjadi $config['global_xss_filtering'] =TRUE;  

Sehingga hasil yang didapat akan menjadi seperti ini 

Seputar Keamanan Pada CodeIgniter

 

Selain cara tadi diatas, plimber juga bisa menggunakan fungsi htmlentities(), dengan fungsi ini maka kode html yang diinputkan pada form tidak akan dieksekusi dan akan dianggap sebagai plain text biasa, cara penggunaannya fungsi ini bisa kita gunakan saat akan menampilkan data, namun tentu hal ini membuat ribet oleh karena itu agar tidak perlu mengulang, kita buat helper bernama xss_helper.php pada folder application/helpers, lalu masukkan kode berikut.

function filter($a){

    echo htmlentities($a, ENT_QUOTES, 'UTF-8');

  }

Nah setelah kita buat helper, maka tinggal kita panggil helper kita ke bagian config/autoload.php pada bagian baris helper sehingga menjadi $autoload['helper'] = array('xss');

Dan maka pada penggunannya tinggal kita panggil helper tadi ketika akan menampilkan data, contohnya disini kita ingin menerapkan protect pada field nama barang, sehingga yang kode tadinya menggunakan echo diganti dengan filter

          filter($key['nm_barang']); <!--?php filter($key['nm_barang']); ?-->

<!--?php>

ÃÃà function filter($a)

ÃÃà {

ÃÃàÃÃàÃÃà echo htmlentities($a, ENT_QUOTES, 'UTF-8');

ÃÃà }

?>

Nah setelah kita buat helper, maka tinggal kita panggil helper kita ke bagian config/autoload.php pada bagian baris helper sehingga menjadi $autoload['helper'] = array('xss');

Maka untukÃÃàpenggunannya tinggal kita panggil helper tadi ketika akan menampilkan data, contohnya sebagai berikut

ÃÃàÃÃàÃÃà <?php foreach ($barang as $key): ?>

ÃÃàÃÃàÃÃàÃÃàÃÃàÃÃàÃÃàÃÃàÃÃàÃÃàÃÃà <?php filter($key['kd_barang']); ?>

ÃÃàÃÃàÃÃàÃÃàÃÃàÃÃàÃÃàÃÃàÃÃàÃÃàÃÃà <?php filter($key['nm_barang']); ?>

ÃÃàÃÃàÃÃàÃÃàÃÃàÃÃàÃÃàÃÃàÃÃàÃÃàÃÃà <?php filter($key['jenis']); ?>

ÃÃàÃÃàÃÃàÃÃàÃÃàÃÃàÃÃàÃÃàÃÃàÃÃàÃÃà <?php filter($key['harga']); ?>

ÃÃàÃÃàÃÃàÃÃàÃÃàÃÃàÃÃàÃÃàÃÃàÃÃàÃÃà <?php filter($key['stok']); ?>
<!--?php filter($key['stok']); ?-->

Sekian saja artikel kali ini, semoga bermanfaat..

0
Comments (0)
Unable to Comment
You need to be logged in to be able to post a comment. Click here to login

No comments yet. Be the first to comment.

From Author
Loading…
ads
ads
ads