我对ZF的安全没有任何概念。操作数据库时必须使用Filter吗?也许绑定就足够了?这个怎么样:
$users->update($data, 'id=1');
是否应该以某种方式过滤 $data 数组?请随意写下您所知道的有关该问题的任何内容。
您能否提供一些有关 ZF 安全性的好文章的链接(主要是关于 SQL 注入和 XSS)?
简短回答
虽然采埃孚获取并提供some尽管采取了保护应用程序的措施,您仍然应该采取与没有 Zend Framework 时使用的相同的预防措施。
关于您的代码片段,请查看有关的章节参考指南中的 Zend_Db http://framework.zend.com/manual/en/zend.db.adapter.html#zend.db.adapter.write.insert:
默认情况下,数据数组中的值是使用参数插入的。这降低了某些类型的安全问题的风险。您不需要对数据数组中的值应用转义或引用。
这并不意味着您不必担心安全问题。例如,对于更新方法 http://framework.zend.com/manual/en/zend.db.adapter.html#zend.db.adapter.write.update above
第三个参数是一个包含 SQL 表达式的字符串,该表达式用作要更改的行的条件。此参数中的值和标识符未加引号或转义。您有责任确保将任何动态内容安全地插入到该字符串中。看引用值和标识符 http://framework.zend.com/manual/en/zend.db.adapter.html#zend.db.adapter.quoting了解帮助您做到这一点的方法。
Note因为你正在使用Zend_Db_Table
显然,第三个参数是第二个参数。在内部,表实例会将调用委托给数据库适配器,第一个参数是表实例的表名。
关于Zend_View http://framework.zend.com/manual/en/zend.view.helpers.html和 XSS 攻击向量:
Zend_View 附带了一组初始的帮助器类,其中大部分与表单元素生成相关并自动执行适当的输出转义。
Again 其中大部分并不意味着全部。Zend_View
确实提供Zend_View::escape() http://framework.zend.com/apidoc/core/Zend_View/Zend_View_Abstract.html#escape帮助您清理输出,但这没什么特别的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)