Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql Zend-插入/更新时是否需要使用quote()?_Mysql_Security_Zend Framework_Sql Injection - Fatal编程技术网

Mysql Zend-插入/更新时是否需要使用quote()?

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

我正在开发一个应用程序,允许用户在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); }
插入和更新时是否应该在$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查看
公共功能插入