我的函数是否可以安全地从SQL注入?

时间:2012-07-12 15:23:45

标签: zend-framework zend-db

    function update_page($page_id, $page_title, $page_content, $seo_title, $seo_keywords, $seo_desc) {

    $pagedata = array('page_title' => $page_title,
                      'page_content' => $page_content,
                      'seo_title' => $seo_title,
                      'seo_keywords' => $seo_keywords,
                      'seo_desc' => $seo_desc);             
    $this-> dbo -> update('zp_mobile_page', $pagedata, 'page_id = '.$page_id);
    $return_message = "Page Updated!";
    return $return_message;

}

嗨,我正在使用Zend DB,我在这个论坛上读到Zend,但我仍然不知道zend的更新插入选择是否可以安全地从sql注入,还是我需要再次清理它们。

任何人都可以用外行的方式指导我吗?

1 个答案:

答案 0 :(得分:1)

请参阅@ Nemanja的评论,但除非您在其他地方手动转发$page_id,否则不能确保注入安全。

您需要使用quoteInto才能保护数据:

 $this->dbo->update('zp_mobile_page',
                    $pagedata,
                    $this->dbo
                         ->getAdapter()
                         ->quoteInto('page_id = ?', $page_id));

您还可以使用Zend_Db_Adapter::quote()转义单个值。