Professional CodeIgniter

(singke) #1

Chapter 9: Security and Performance


278


In other places, like the batchUpdate() function, you ’ ll need to remember that you ’ re passing in
category_id and grouping strings that need to be escaped, well before they are processed by your final query:

function batchUpdate(){
if (count($this- > input- > post(‘p_id’))){
$data = array(‘category_id’ = > id_clean($_POST[‘category_id’]) ,
‘grouping’ = > db_clean($_POST[‘grouping’])
);
$idlist = implode(“,”,array_values($this- > input- > post(‘p_id’)));
$where = “id in ($idlist)”;
$this- > db- > where($where);
$this- > db- > update(‘products’,$data);
$this- > session- > set_flashdata(‘message’, ‘Products updated’);
}else{
$this- > session- > set_flashdata(‘message’, ‘Nothing to update!’);
}
}

The complete list of functions that need securing includes :

getProduct()

getProductsByCategory()

getProductsByGroup()

getRandomProducts()

search()

addProduct()

updateProduct()

deleteProduct()

batchUpdate()

Securing the MSizes Model


Treat the MSizes model pretty much the same as you did MColors. The same rules apply in almost the
identical places, give or take a function name change here or there.

function getSize($id){
$data = array();
$options = array(‘id’ = > id_clean($id) );
$Q = $this- > db- > getwhere(‘sizes’,$options,1);
if ($Q- > num_rows() > 0){
$data = $Q- > row_array();
}
$Q- > free_result();
return $data;
}

function createSize(){
$data = array(

❑ ❑ ❑ ❑ ❑ ❑ ❑ ❑ ❑

Free download pdf