2009-12-09 4 views
8

나는 다음과 같은 코드가 있습니다젠드 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

젠드 프레임 워크 1.0까지 최대 Zend_Db의 주 개발자였습니다.

표시 한 예에서 적절한 따옴표 및 이스케이프가 적용된 값이 쿼리에 삽입됩니다. 더 이상 아무것도 할 필요가 없습니다.

내부적으로는 사용중인 Zend_Db_Adapter에 대한 PHP 확장 기능에 내장 된 인용 기능을 사용합니다. 예 : PDO::quote().

+1

PDO 대신 mysqli 어댑터를 사용하고 있습니다. 어떤 차이가 있습니까? – iBiryukov

+1

이 경우에는 mysqli :: real_escape_string()을 사용하고있다. 같은 효과. –