Pertemuan 7
IKB112312
STMIK EL RAHMA
Oleh : Wahyu Widodo
POKOK BAHASAN
Penanganan Error Reporting Antisipasi serangan XSS
Validasi Form
Celah Keamanan Pada Aplikasi :
Error reporting Form input
Halaman login Alamat URL
Penanganan Error Reporting
Buka file index.php pada root folder
Ganti baris program berikut :
define('ENVIRONMENT', 'development');
Menjadi :
define('ENVIRONMENT', 'production');
Buka file error_db.php pada : application/errors/
Ganti baris program berikut :
<h1><?php echo $heading; ?></h1> <?php echo $message; ?>
Menjadi:
Antisipasi Serangan XSS
XSS Filtering digunakan untuk mencegah kode-kode jahat yg jika masuk
ke sistem akan menyebabkan error sehingga menimbulkan celah
masuk ke sistem secara ilegal.
Buka file config.php pada : application/config/
Ganti baris program berikut :
$config['global_xss_filtering'] = FALSE;
Menjadi :
Jangan biasakan gunakan fungsi $_POST($variabel), ganti dengan $this->input->post($variabel, TRUE)
Contoh :
$data[‘lihat’] = $_POST[‘dataku’];
Ubah menjadi :
Validasi Form
Validasi form digunakan untuk meminimalkan kesalahan input (termasuk antisipasi serangan melalui form atau SQL Injection)
Untuk menjalankan validasi form harus mengaktifkan library form_validation, melalui Autoload.php
$autoload['libraries'] = array(‘form_validation');
Secara manual
Penggunaan validation_rule
Format :
Contoh Penggunaan Cascading Rule
Contoh Penggunaan Fungsi Callback
$this->form_validation->set_rules('username', 'Username', 'callback_username_check');
Autentikasi dengan Session
Session biasanya digunakan untuk login pengguna
Untuk menggunakan layanan session harus diaktifkan library dengan cara : 1. Edit file autoload.php
$autoload['libraries'] = array('session');
2. Secara manual
$this->load->library('session');
Setelah login dan account benar, data disimpan pada session dengan perintah
Contoh :
$newdata = array(
‘username’ => $data[‘user’], ‘status’ => ‘ok’);
$this->session->set_userdata($newdata);
Setiap akan masuk ke prosedur yg butuh otorisasi, maka isi session dicek apa sesuai atau tidak
Contoh :
$status = $this->session->userdata(‘status’);
If (!isset($status) || $status != ‘ok’) { $this->loginulang();
} else {
Jika user keluar dari accountnya, maka data session harus
dihapus.
Contoh :
$newdata = array(‘username’ => ‘ ’, ‘status’ => ‘ ’);