Kadang-kadang kita ingin menyimpan data di suatu field yang mengandung Tag HTML. Biasanya data seperti ini menggunakan tipe field Text atau Memo, dan sering kita temukan pada Aplikasi Web yang mengijinkan Pengguna Akhir menggunakan Tag HTML.
Contoh, Pengguna Akhir dapat menyisipkan Tag HTML untuk membuat table dengan Tag TABLE beserta baris dan kolom di dalam sebuah field masing-masing dengan Tag TR dan TD. Atau, mereka juga dapat membuat baris kosong dengan Tag BR atau membuat cetakan tebal dengan Tag BOLD, dan sebagainya.
Sampai dengan PHPMaker 2021, data yang mengandung Tag HTML, akan otomatis dihapus Tag-nya. PHPMaker 2021 menggunakan fungsi global yang bernama RemoveXss untuk menghapus XSS dari data yang akan disimpan ke database.
Jadi, sebelum data disimpan ke database, PHPMaker 2021 akan menghapus Tag HTML tersebut, sehingga hanya menyisakan data yang tanpa diapit oleh Tag HTML tadi. Tujuannya hanya satu yaitu demi alasan keamanan, untuk menghindari penyalahgunaan Tag HTML untuk menyerang Aplikasi Web tersebut.
Bagi yang belum tahu apa itu XSS, XSS merupakan singkatan Cross Site Scripting. XSS merupakan salah satu jenis serangan injeksi kode (code injection attack). XSS dilakukan oleh penyerang dengan cara memasukkan kode HTML atau client script code lainnya ke suatu situs.
Pertanyaannya, bagaimana jika kita memang mengijinkan Pengguna untuk menggunakan Tag HTML pada data di salah satu field saat entri data berlangsung? Sementara yang kita ketahui, PHPMaker 2021 akan otomatis menghapus Tag HTML tersebut, dengan menggunakan fungsi global RemoveXSS tadi?
Jangan khawatir, karena PHPMaker 2021 sudah memberikan solusi untuk mengatasi kondisi ini. Kita cukup menambahkan sebaris kode saja pada server event Page_Load milik halaman yang bertalian.
Katakanlah pada halaman Add, kita ingin mengijinkan supaya Pengguna Akhir dapat menambahkan Tag HTML pada field Data_Lengkap, maka cukup masukkan kode berikut ke dalam server event Page_Load di bawah Add Page:
$this->Data_Lengkap->Raw = true;
Kode di atas artinya kita menugaskan nilai true untuk property Raw milik field Data_Lengkap. Karena nilai-nya true, itu artinya field tersebut diijinkan untuk menyimpan data mentah (Raw = mentah) atau data asli yang di-input oleh Pengguna Akhir.
Jadi, dalam hal ini karena flag penanda untuk field ini sudah ditandai sebagai data mentah, maka Aplikasi Web tidak akan menggunakan RemoveXSS untuk menghapus Tag HTML pada field tersebut.
Betapa mudah dan simpel sekali, bukan? Hanya dengan satu baris kode itu saja, kita sudah dapat memberitahukan kepada sistem supaya tidak menghapus Tag HTML pada field tertentu.
Tinggalkan Balasan