Zend Framework SQL注入保护

Wil*_*ill 2 sql zend-framework

我正在看一些我正在使用的开发人员使用的Zend Framework代码,在其中我看到以下内容:

$select = new Zend_Db_Select($DB);
$sql = $select->where("id ='".$id."'");             
Run Code Online (Sandbox Code Playgroud)

现在,$ id在任何地方都没有消毒,而且我的印象是,如果你使用占位符,你只能通过Zend注入保护 - 这个字符串很脆弱,我想.

该代码的作者声称zend即使在这种情况下也会处理它,尽管我在文档中找不到它所说的内容.

如果这实际上是安全的,那么任何人都可以清理吗?

小智 5

你是对的.另一个开发人员错了.

如果您查看此处的文档,您可以在页面底部找到评论示例#20的注释,如果参数来自用户输入,则需要进行SQL注入.示例#20或多或少与您粘贴的代码做同样的事情.(虽然,你的代码有单引号,但这当然不会使它更安全.)

我不知道为什么有人会忽视占位符,支持这种不安全且不太干净的写作方式.