2009-12-09 16 views
8

मैं निम्नलिखित कोड है:Zend Db परहेज एसक्यूएल इंजेक्शन

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 या ज़ेंड डीबी मेरे लिए यह करता है?

धन्यवाद!

उत्तर

15

मैं ज़ेन फ्रेमवर्क 1.0 तक Zend_Db पर मुख्य डेवलपर था।

उदाहरण में आप दिखाते हैं कि मूल्यों में उचित उद्धरण और एस्केपिंग लागू होने के साथ क्वेरी में अंतरण किया जाता है। आपको और कुछ नहीं करना है।

आंतरिक रूप से, यह Zend_Db_Adapter के लिए PHP एक्सटेंशन में निर्मित उद्धरण फ़ंक्शन का उपयोग करता है जिसका आप उपयोग कर रहे हैं। जैसे PDO::quote()

+1

मैं पीडीओ के बजाय mysqli एडाप्टर का उपयोग कर रहा हूँ। इससे क्या फ़र्क पड़ता है? – iBiryukov

+1

उस स्थिति में यह 'mysqli :: real_escape_string()' का उपयोग कर रहा है। वही प्रभाव –

संबंधित मुद्दे