2013-03-19 2 views
7

तो मैं जेडएफ 2.1.4 में अपग्रेड किया है और मुझे कोई नोटिस कह के साथ स्वागत किया गया था: Attempting to quote a value in Zend\Db\Adapter\Platform\Mysql without extension/driver support can introduce security vulnerabilities in a production environmentजेडएफ में एक SQL क्वेरी के लिए एक मूल्य का हवाला देते हुए 2.1.4

मेरे dbadapter जैसे instanciated है:

return array(
    'service_manager' => array(
    'factories' => array(
     'Zend\Db\Adapter\Adapter' => 'Zend\Db\Adapter\AdapterServiceFactory', 
    ) 
    ), 
    'db' => array(
    'driver'   => 'pdo_mysql', 
    'driver_options' => array(
     PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'UTF8'" 
    ), 
    'dsn'   => 'mysql:dbname=test;host=192.168.1.8', 
    'username'  => 'test', 
    'password'  => 'test', 
    ) 
); 

$order = 'field(ce.id, ' . $this->_db->getPlatform()->quoteValueList($ids) . ')'; 
$select->order(new Expression($order)); 

मैं इसके बारे में कैसे जाना चाहिए:

क्या मैं उद्धृत करना चाहते हैं निम्नलिखित है? मैं इस धारणा के तहत था कि pdo_mysql के पास मूल्य उद्धृत करने के लिए ड्राइवर समर्थन था।

+1

संभव डुप्लिकेट -> http://stackoverflow.com/ प्रश्न/1547610 9/ज़ेंड-फ्रेमवर्क-2-सबक्वायरी – Crisp

+1

@ क्रिप धन्यवाद, जिसने बहुत मदद की। '$ This-> प्लेटफ़ॉर्म-> setDriver ($ this-> getDriver()) जोड़ना;' Zend \ Db \ Adapter के getPlatform पर इसे काम करने के लिए मजबूर किया गया। फिर भी यह एक बग है। – mobius

उत्तर

2

ऐसा लगता है कि आपको पहले से ही $this->platform->setDriver($this->getDriver()); जोड़कर अपना समाधान मिला है। इसके अलावा इस पर एक नज़र डालें:

कृपया घोषणाओं और सुरक्षा नोटों कि इस रिलीज के साथ कर रहे थे देखें: http://framework.zend.com/security/advisory/ZF2013-03

रिलीज़ नोट: http://framework.zend.com/blog/2013-03-14-zend-framework-3-for-1-release-day.html

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