Professional CodeIgniter

(singke) #1

Chapter 9: Security and Performance


277


Securing the MPages Model


MPages is just like all the rest. You need to protect the getPage() function, getPagePath() , and any
function that inserts, updates, or deletes records. For example, here is the addPage() function:

function addPage(){
$data = array(
‘name’ = > db_clean($_POST[‘name’]),
‘keywords’ = > db_clean($_POST[‘keywords’]),
‘description’ = > db_clean($_POST[‘description’]),
‘status’ = > db_clean($_POST[‘status’],8),
‘path’ = > db_clean($_POST[‘path’]),
‘content’ = > $_POST[‘content’]
);

$this- > db- > insert(‘pages’, $data);
}

Notice that in this case, the content field of the pages table should contain HTML content, so you ’ re not
going to add any restrictions to it.

The complete list of functions that must be secured in this model includes :

addPage()

updatePage()

deletePage()

getPage()

getPagePath()

Securing the MProducts Model


The MProducts model is by far the largest in this application — and for good reason! Just about
everything of consequence that happens in this application happens because of (or to) a product. Site
visitors view products, navigate to products, and see related products. Colors and sizes that have been
assigned to a product need to be displayed along with that product.

Some of the security cleanup will be very easy, such as with the getProduct() function:

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





Free download pdf