Mysql Zend-插入/更新时是否需要使用quote()?
我正在开发一个应用程序,允许用户在mySQL中输入VARCHAR(255)字段,因此安全性是一个主要问题 我理解quote()有困难。如果我使用引号('test'),则数据在SELECT上返回为'\'test',这是不可取的。如何取消引用此数据 如果我绕过quote(),我可以窥视phpmyadmin并看到“test”,所以Zend似乎不会自动为我转义quote 我的代码如下所示: public function getDbTable() { if (null === $this->_dbTable) { $this->setDbTable(new Zend_Db_Table($this->_tableName)); } return $this->_dbTable; } private function insert($anObject) { $row['cell1'] = $anObject->getCell1(); $row['cell2'] = $anObject->getCell2(); $this->getDbTable()->insert($row); } 公共函数getDbTable(){ 如果(null==$this->\u dbTable){ $this->setDbTable(新的Zend_Db_表($this->_tableName)); } 返回$this->\u dbTable; } 私有函数插入($anObject){ $row['cell1']=$anObject->getCell1(); $row['cell2']=$anObject->getCell2(); $this->getDbTable()->insert($row); }Mysql Zend-插入/更新时是否需要使用quote()?,mysql,security,zend-framework,sql-injection,Mysql,Security,Zend Framework,Sql Injection,我正在开发一个应用程序,允许用户在mySQL中输入VARCHAR(255)字段,因此安全性是一个主要问题 我理解quote()有困难。如果我使用引号('test'),则数据在SELECT上返回为'\'test',这是不可取的。如何取消引用此数据 如果我绕过quote(),我可以窥视phpmyadmin并看到“test”,所以Zend似乎不会自动为我转义quote 我的代码如下所示: public function getDbTable() { if (null === $this
插入和更新时是否应该在$anObject->getCell1()附近使用quote() 如果我绕过quote(),我可以窥视phpmyadmin并看到“test”,所以Zend似乎不会自动为我引用
呵呵,如果你在PMA中看到“test”(带引号),那意味着Zend已经成功地引用了你的字符串。如果Zend没有引用()它-您将看到关于错误查询的异常。;-) Zend_Db_Table_Abstract::insert使用Zend_Db_Adapter_Abstract::insert执行插入。Zend_Db使用,所以当您使用insert方法时,SQL注入没有风险。在将值传递给insert之前,您不必引用这些值。所以,如果我使用Zend_Db_表,默认情况下这是否足够保护?当然<代码>http://framework.zend.com/svn/framework/standard/tags/release-1.10.8/library/Zend/Db/Adapter/Abstract.php查看
公共功能插入