2009-12-09 14 views
8

Aşağıdaki kod var:Zend Db kaçınarak sql enjeksiyonları

public function checkLoginDetails($email, $password) { 
    $select = $this->select(); 
    $select->where ("password=?", md5($password)); 
    $select->where ("email=?", $email); 
    return $this->fetchRow($select); 

} 

e-posta ve şifre kullanıcıya doğrudan gelir. E-postaları mysql_real_escape_string ile filtrelemeli miyim yoksa Zend DB bunu benim için yapar mı?

Teşekkür ederiz!

cevap

15

Zend Framework 1.0'a kadar Zend_Db ana geliştiricisiydim.

Gösterdiğiniz örnekte, değerler uygun tırnak işaretleri ve çıkışlar uygulanarak sorguya enterpole edilir. Daha fazla bir şey yapmak zorunda değilsin.

Dahili olarak, kullanmakta olduğunuz Zend_Db_Adapter için PHP uzantısına dahil edilen alıntılama işlevini kullanır. Örneğin. PDO::quote().

+1

PDO yerine mysqli bağdaştırıcısı kullanıyorum. hiç fark yapar mı? – iBiryukov

+1

Bu durumda 'mysqli :: real_escape_string()' kullanıyor. Aynı etkisi. –