7

そこで、ZF 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

私のdbadapterはそのようにインスタンス化されています:

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が値を引用するためのドライバーサポートを持っているという印象を受けました。

4

1 に答える 1

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

于 2013-05-25T16:32:18.973 に答える