Dalam menjalankan aplikasi Yii kita, kita mungkin menampilkan dialog atau drop down yang berfungsi memilih data misalnya data pelanggan. Dalam perusahaan yang memiliki banyak sales, tentu sales hanya diperbolehkan mengambil pelanggannya sendiri, dan pada dialog box atau dropdown hanya akan muncul daftar pelanggannya sendiri.
Tetapi kalau sales tersebut tahu menggunakan inspect element, maka dia dapat mengganti value dari customer_id menggunakan inspect element dan hasilnya adalah dia memilih pelanggan yang bukan pelanggan dia, tetapi pelanggan dari sales lain. Akibatnya jika terjadi maka sales tersebut mencuri komisi dari sales lain.
Bagaimana kita mengatasi hal demikian?
- Kita perlu menyimpan data-data dari dialog box atau dropdown ke dalam session.
Misal kita menyimpan session dengan menggunakan function update_input_session($controller,$action,$id,$allow_value_array) - Sebelum save kita perlu mengecek value dengan cek_input_session($controller,$action,$id,$inputed_value)
- Terkait dengan primary_key yang biasanya dengan _GET dalam format index.php?r=controller/action&id=angka
Misal index.php?r=purchase/update&id=5 .Dalam kasus ini kita harus menambahkan suatu validasi dalam actionUpdate apakah user tersebut berhak melakukan update untuk id=5 .
Untuk security yang baik silahkan melakukan pengecekan pada saat awal (tampilan di user), dan saat akhir (saat mau update ke model atau database)
Artikel terkait ini adalah http://www.proweb.co.id/articles/web_application/attribut_safe_yii.html .
Kunjungi www.proweb.co.id untuk menambah wawasan anda.