2009-12-09 4 views
8

У меня есть следующий код:Zend Db избегая SQL инъекции

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

} 

электронной почты и пароль приходят непосредственно от пользователя. Нужно ли мне фильтровать электронную почту, скажем, mysql_real_escape_string или делать Zend DB для меня?

Спасибо!

ответ

15

Я был главным разработчиком на Zend_Db, вплоть до Zend Framework 1.0.

В примере, который вы показываете, значения интерполируются в запрос, при этом применяются соответствующие кавычки и экранирование. Вам больше не нужно ничего делать.

Внутри он использует функцию цитирования, встроенную в расширение PHP для используемого вами Zend_Db_Adapter. Например. PDO::quote().

+1

Я использую адаптер mysqli вместо PDO. Разве это имеет значение? – iBiryukov

+1

В этом случае используется 'mysqli :: real_escape_string()'. Тот же эффект. –

Смежные вопросы