Isnin, 21 Mac 2011

Bilik Tidur

Rumah dah duduk sekat 1 tahun lebih tapi sentiasa skip untuk beli perabot bilik tidur, jadi minggu ini aku shopping sementara isteri kursus di Genting :D So ada suprise untuk si dia


Items
- King Size Bed ~ RM1500
- King Size Sleepwear ( sarung tilam ) ~ RM80
- Kings Size Bed Frame + Wardrobe 4 doors + Mirror + Table +Chest Drawer ~ RM4500
- Green Theme carpet (L) ~ RM 570
- Green Theme carpet ( S ) ~ RM70
- Light Green Bath Mat ~  RM50
- Novelle J.Perry Pillows ( 2 + 1 ) ~ RM 130
- Orthorest Bed Topper ( memory foam )  ~ RM800
- Carrier 1.0 HP Air Condition ~ RM1100
- Bath tub 30 gallon ~ RM80
- Bath Cabinet ~ RM200
- Small Dustbin ~ RM30
- Green Painting - RM980

Total ?, kira sendiri

Meja Solek

4 doors wardrobe
Sebelum tambah aksesori
Topper yang harga dekat RM900

Rabu, 16 Mac 2011

CAKEPHP Security : Melindungi Form anda

CakePHP membuatkan pembinaan laman web menjadi mudah disebabkan konsep Magik dan Rapid Application Development yang diperkenalkan. Tetapi bagaimana dengan Sekuriti ?

Perisian yang boleh dicuba untuk tujuan security

Browser : Mozilla Firefox
Plugin wajib :
1) SQL Inject Me
2) Firebug

Sila gunakan Google untuk install plugins-plugins tersebut

Filter Form Data
==========================
CakePHP menyediakan Utiliti bernama Sanitize untuk filter form data sebelum disimpan ke dalam database
Umum mengetahui yang CakePHP akan terima variable $this->data yang didatangkan dari Form yangdisubmit oleh pengguna, jadi adalah menjadi tanggungjawab kita untuk filterkan data tersebut

Contoh 1, kod di bawah akan cleankan kesemua variable $this->data
$this->data = Sanitize::clean($this->data);

Sila rujuk : http://book.cakephp.org/#!/view/1183/Data-Sanitization

Hanya Save Field Yang Perlu Sahaja=============================
 Bayangkan dalam registration form anda hanya display username,password,email,biodata tetapi di dalam table database ada field group_id. Bayangkan jika saya gunakan Firebug dan tambah virtual field group_id = 1. Dan secara automatik user biasa boleh menjadi admin :D ( kebiasaanya group_id = 1 ialah admin ). Jadi bagaimana nak bagitau CakePHP cuma save field yang berkaitan sahaja ?

Guna teknik whitelist.

Caranya, kita letak dalam array field-field yang hendak disave ke dalam DB

$whitelist = array('username', 'password', 'email', 'biodata');
if($this->save( $this->data  ,  $whitelist ) ) {
  // saved
}

Enablekan Security Component
=============================
 Cara paling senang, cuma enablekan Security Component dalam Controller atau AppController, Secara automatik Form yang dibuat menggunakan object Form akan terlindung dari anasir-anasir jahat lagi nakal

$components = array('Security');


Kalau tak percaya, cuba gunakan h() function dalam view

echo h($this->Form->create('User'));